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 الكامل بالعربي.