تخطَّ إلى المحتوى

ArgumentNullException.ThrowIfNull

التحقق السريع من null بـ ThrowIfNull ArgumentNullException.ThrowIfNull

دالة مساعدة ثابتة (منذ .NET 6) ترمي ArgumentNullException تلقائيًا إن كانت الوسيطة null، مع اكتشاف اسمها بلا كتابته يدويًا.

بدل كتابة `if (arg == null) throw new ArgumentNullException(nameof(arg));` في بداية كل دالة، تختصرها ThrowIfNull لسطر واحد. تعتمد على خاصية CallerArgumentExpression لاستنتاج اسم الوسيطة تلقائيًا من موقع الاستدعاء، فلا داعي لتمرير nameof يدويًا.

الفشل المبكر بفحص الوسائط في أول الدالة أوضح بكثير من NullReferenceException غامض بعد عشرين سطرًا داخل الدالة.

الصياغة

ArgumentNullException.ThrowIfNull(argument);

📄 مثال

void Process(Order order)
{
    ArgumentNullException.ThrowIfNull(order);
    // من هنا order مضمون أنه ليس null
    Console.WriteLine(order.Total);
}

أهم النقاط

العنصرالوظيفة
ThrowIfNull(arg)يرمي ArgumentNullException إن كان arg يساوي null
اكتشاف الاسم تلقائيلا حاجة لتمرير nameof(arg) يدويًا
متوفّرة منذ.NET 6 وما بعده

💡 نصائح عملية

  • استخدمها في بداية الدوال العامة (public) التي تستقبل معاملات مرجعية من مستدعين خارجيين

⚠️ أخطاء شائعة

  • الاعتماد على NullReferenceException لاحقًا بدل فحص مبكر — يجعل تتبّع مصدر null أصعب

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار CSHARP الكامل بالعربي.