Avatar ·

ما هو null/nil في C# وكيفية التعامل معه؟

مرحباً بالجميع! بدأت تعلم C# وواجهت مفهوم null. في لغات أخرى رأيت nil أو None، لكن في C# يبدو أنه نفس الشيء. أرجو توضيح ما يعنيه null في سياق الأنواع المرجعية وكيفية التعامل معه بشكل صحيح؟

حاولت كتابة كود بسيط، لكني أحصل على NullReferenceException. إليك مثال:

public class Person { public string Name { get; set; } }

Person person = null;
Console.WriteLine(person.Name); // خطأ: Object reference not set to an instance of an object.

كنت أتوقع أن person.Name سيعيد سلسلة فارغة أو null بدون استثناء. كيف أتجنب مثل هذه الأخطاء؟ جربت التحقق عبر if (person != null)، لكن هذا يثقل الكود. سمعت عن ?. (null-conditional operator) و ?? (null-coalescing operator) — كيف أستخدمها بشكل صحيح؟ كما يهمني معرفة الفرق بين null و defau