خوب مورد null رو در value type ها و reference type ها بررسی میکنیم:
طبیعتا به راحتی و بدون ارور میتونیم null رو به reference type ها بدیم
وقتی به مشکل میخوریم که بخوایم null رو به value type ها بدیم :
int a = null ;
نمیشه ، خوب راه حلش چیه ؟
وقتی میخوایم قابلیت nullable بودن رو برای متغییر در نظر بگیریم میایم و اینطوری از ؟ استفاده میکنیم:
int? i =null;
برای اعتبار سنجی و این که ببینیم i مقدار غیر null داره میایم از HasValue استفاده میکنیم.
i.HasValue ⇒ output bool
اگر هم بخوایم برای پارامتری مقدار تعیین کنیم از value استفاده میکنیم:
i.value = 10;
نکته وقتی که فقط بیایم i رو تعریف کنیم، چون از نوع struct هستش مقدار default برای تنظیم شده و اون مقدار 0 هستش :
int i;
نکته وقتی که فقط یه کلاس رو تعریف میکنیم مقدارش به صورت دیفالت null هستش
Person person;