خوب مورد 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;