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

field

الكلمة المفتاحية field field

منذ C# 14، تشير field إلى الحقل الاحتياطي الذي يولّده المترجم تلقائيًا لأي خاصية، فلا حاجة لتعريف حقل خاص يدويًا فقط لإضافة منطق بسيط في get أو set.

قبل C# 14، إضافة أي منطق تحقّق داخل set كانت تتطلّب تعريف حقل احتياطي خاص يدويًا (مثل _name) وكتابة كلا المتغيّرَين. الآن field يشير مباشرة لنفس الحقل الذي يولّده المترجم للخاصية التلقائية، فتُضيف منطقك دون التصريح عن حقل منفصل.

يمكن تخصيص get أو set أو كليهما، وترك الجزء غير المخصَّص يعمل تلقائيًا كخاصية عادية.

الصياغة

public Type PropName
{
    get;
    set => field = /* تحقّق أو تحويل */;
}

📄 مثال

public string Name
{
    get;
    set => field = value ?? throw new ArgumentNullException(nameof(value));
}

أهم النقاط

العنصرالوظيفة
fieldيشير إلى الحقل الاحتياطي المولَّد تلقائيًا للخاصية
get; / set => ...يمكن تخصيص accessor واحد وترك الآخر تلقائيًا
متوفّرة منذC# 14 (.NET 10) — كانت preview في C# 13

💡 نصائح عملية

  • استخدمها بدل حقل احتياطي يدوي كامل عندما يكون المنطق المطلوب في accessor واحد فقط بسيطًا

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

  • وجود متغيّر أو حقل باسم field فعليًا في نفس الصنف يسبّب التباسًا مع الكلمة المفتاحية — يلزم @field أو this.field للتمييز

خصائص ذات صلة

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