ما هو NullReferenceException؟
NullReferenceException هو استثناء وقت التشغيل في C# يحدث عند محاولة الوصول إلى أعضاء كائن فارغ. يمكن أن يحدث هذا عندما:
- حاول استدعاء طريقة كائن فارغ.
- حاول الوصول إلى خصائص كائن فارغ.
- حاول أن تضعف مؤشر فارغ.
كيفية حلها؟
هناك عدة طرق لحل NullReferenceException:
- تحقق من وجود قيم فارغة قبل الوصول إلى الأعضاء. تحقق دائمًا مما إذا كان الكائن فارغًا قبل الوصول إلى أي عضو في الكائن. يمكنك استخدام عبارة IF كما هو موضح في المثال التالي:
if (object != null)
{
// 访问对象的成员。
}
- استخدم عامل دمج فارغ. يتيح لك عامل الدمج الفارغ (؟؟) تحديد القيمة الافتراضية لاستخدامه إذا كان الكائن فارغًا. على سبيل المثال ، يقوم الرمز التالي بإرجاع قيمة خاصية الاسم إذا لم يكن الكائن فارغًا ؛ إذا كان الكائن فارغًا ، فإنه يعود "غير معروف":
string name = object?.Name ?? "Unknown";
- استخدم مشغل الحالة الفارغة. يتيح لك مشغلي الحالة الفارغة (؟. و؟ []) الوصول إلى أعضاء كائن دون التحقق من قيم فارغة مسبقًا. على سبيل المثال ، يقوم الرمز التالي بإرجاع قيمة خاصية الاسم إذا لم يكن الكائن فارغًا ؛ إذا كان الكائن فارغًا ، فإنه يعود فارغًا:
string name = object?.Name;
استخدم كتلة Try/Catch. - يمكنك أيضًا استخدام كتلة Try/Catch للتعامل مع NullReferenceExceptions. على سبيل المثال ، سوف يقوم الرمز التالي بمعالجة NullReferenceException وطباعة رسالة إلى وحدة التحكم:
يحاول
{
// الوصول إلى عضو الكائن.
}
الصيد (NullReferenceException ex)
{
console.writeline ("يحدث nullreferenceException.") ؛
}