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

nameof

تعبير nameof nameof

nameof يُرجع اسم متغيّر أو نوع أو عضو كنص، محسوبًا وقت الترجمة بدل كتابته يدويًا كسلسلة حرفية.

كتابة اسم عضو كنص حرفي ("order") ينكسر بصمت لو غيّرت الاسم لاحقًا أثناء إعادة الهيكلة. nameof(order) يقرأه المترجم من الرمز نفسه، فأي تغيير في الاسم يظهر كخطأ ترجمة فورًا بدل بق صامت وقت التشغيل.

يُستخدم كثيرًا في رسائل الاستثناءات وفحوصات الوسائط والربط بالخصائص (property binding في WPF مثلًا).

الصياغة

nameof(identifier)

📄 مثال

void SetAge(int age)
{
    if (age < 0)
        throw new ArgumentOutOfRangeException(nameof(age), "العمر لا يمكن أن يكون سالبًا");
}

Console.WriteLine(nameof(SetAge));   // "SetAge"

أهم النقاط

العنصرالوظيفة
nameof(variable)اسم متغيّر أو معامل كنص
nameof(Type.Member)اسم عضو صنف أو خاصية
تُحسَب وقت الترجمةلا تكلفة أداء وقت التشغيل

💡 نصائح عملية

  • استخدمها دائمًا بدل النص الحرفي في رسائل الاستثناءات — تبقى صحيحة بعد أي إعادة تسمية

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

  • كتابة اسم المعامل كنص حرفي ("age") بدل nameof(age) — ينكسر بصمت عند إعادة التسمية

خصائص ذات صلة

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