כאשר אנחנו כותבים מתודה המחזירה Type גנרי, לפעמים קורה שאנחנו רוצים להחזיר null.
הבעיה היא שאז לא נוכל להחזיר null במידה וT הוא value type.
לכן היינו רוצים להחזיר null במידה ומדובר בReference type.
במידה וT הוא value type כנראה נרצה להחזיר משהו כמו 0, false או הערך הדיפולטי של הType – בד”כ מדובר בType כשכל הערכים בו מאותחלים בערך הדיפולטי שלהם, כאשר הוא לtypeים הנומריים הערך הדיפולטי הוא 0.
יש תמיכה בדבר כזה, באמצעות הkeyword שנקרא default:
באופן כללי כל member שלא אתחלנו אותו בעצמנו, יאותחל בערך default() של הType שלו:
|
|
שקולה לשורה
|
|
או לשורה
|
|
באופן דומה זה נכון גם לכל Type ואין משהו מיוחד בint.
עוד דוגמה:
השורות הבאות שקולות
|
|
string הוא לא value type ולכן מאותחל בnull.
גם אם המשתנה גנרי קורה אותו הדבר והשורות הבאות שקולות:
|
|
בכל מקרה נוכל גם להשתמש בזה גם במתודות גנריות, למשל המתודה שראינו פעם:
|
|
נוכל להחזיר במקרה של 0 פרמטרים את default(T):
|
|
יום גנרי טוב