"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية منع NullReferenceExceptions والتعامل معها في C#؟

كيفية منع NullReferenceExceptions والتعامل معها في C#؟

نشر في 2025-04-18
تصفح:762

How Can I Prevent and Handle NullReferenceExceptions in C#?

ما هو 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.") ؛ }
 
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3