البرمجة

تجنب NullReferenceException في C#

عند تشغيل الكود المعروض، قد يحدث NullReferenceException في السطر:

scss
TeamFahrer.Add(FTemp);

هذا الخط يحاول إضافة كائن من نوع Fahrer إلى قائمة TeamFahrer، ولكنه يعطي استثناء الاستثناء لأن القائمة TeamFahrer لم تُبنَ في الوقت الذي تم فيه استدعاء الطريقة Bar.

الحل لهذه المشكلة هو تهيئة القائمة TeamFahrer قبل استدعاء الطريقة Bar. يمكن القيام بذلك على سبيل المثال عن طريق تهيئة القائمة في بناء الكائن Team:

csharp
class Team { public List TeamFahrer { get; set; } public Team() { TeamFahrer = new List(); } public void Bar(string salad, string hotdog, string brokkoli) { Motorrad MTemp = new Motorrad(brokkoli); Fahrer FTemp = new Fahrer(salad, hotdog, MTemp); TeamFahrer.Add(FTemp); } }

بعد إجراء هذا التغيير، ينبغي أن يعمل الكود بشكل صحيح ويتجنب NullReferenceException عندما يتم استدعاء الطريقة Bar.

المزيد من المعلومات

بالطبع، هناك المزيد من المعلومات التي يمكن تقديمها لفهم أسباب حدوث استثناء NullReferenceException في الكود المعطى.

عند التحقق من الكود، نرى أن الخطأ الرئيسي يكمن في أن القائمة TeamFahrer لم يتم تهيئتها قبل استخدامها في طريقة Bar. عند استدعاء طريقة Add على TeamFahrer دون تهيئتها، يُرمَى استثناء NullReferenceException لأن القائمة لا تشير إلى أي كائن حاليًا.

تهيئة القائمة TeamFahrer في بناء الكائن Team تحل هذه المشكلة، حيث يتم إنشاء قائمة جديدة عند إنشاء كائن Team. هذا يضمن أن القائمة مُبنَية ومستعدة للاستخدام عندما تتم استدعاء طريقة Bar.

بالإضافة إلى ذلك، يمكن أيضًا إضافة التحقق من القيم المدخلة في طريقة Bar لضمان أنها ليست فارغة أو تحتوي على قيم null، وهذا قد يساعد في تجنب حدوث استثناء NullReferenceException في حالات أخرى قد تنشأ من قيم غير صالحة.

زر الذهاب إلى الأعلى