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

extension

أعضاء التوسيع (Extension Members) extension

صياغة extension الجديدة في C# 14 تسمح بتعريف خصائص توسيع، لا دوال توسيع فقط، مجمّعة في كتلة واحدة لنوع معيّن.

دوال التوسيع (extension methods) كانت موجودة منذ سنوات بصياغة `this Type param` في أول معامل. C# 14 يضيف صياغة extension<T>(receiver) { ... } تجمع أعضاء توسيع متعدّدة (خصائص ودوال) لنفس النوع في كتلة واحدة، وتسمح بخصائص توسيع لأول مرة — شيء لم يكن ممكنًا بالصياغة القديمة.

يمكن أيضًا تعريف أعضاء توسيع تُستدعى كأعضاء ساكنة (static) على النوع نفسه، لا على كائن منه.

الصياغة

static class ExtName
{
    extension<T>(ReceiverType receiver)
    {
        public ReturnType Member => ...;
    }
}

📄 مثال

static class CollectionExtensions
{
    extension<T>(IEnumerable<T> source)
    {
        public bool IsEmpty => !source.Any();
    }
}

List<int> numbers = [];
Console.WriteLine(numbers.IsEmpty);   // True

أهم النقاط

العنصرالوظيفة
extension<T>(receiver)كتلة تجمع أعضاء توسيع (خصائص/دوال) للنوع receiver
خاصية توسيعممكنة الآن، لم تكن متاحة بصياغة extension method القديمة
extension(Type)بلا معامل استقبال — لأعضاء ساكنة على النوع نفسه

💡 نصائح عملية

  • استخدمها لتنظيم عدّة أعضاء توسيع لنفس النوع في مكان واحد بدل دوال متفرّقة

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

  • الخلط بينها وبين extension methods التقليدية (this Type param) — الصياغتان لا تزالان صالحتان، extension الجديدة تضيف قدرة الخصائص فقط

خصائص ذات صلة

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