البرمجة وتطوير البرمجيات

C# 15 تضيف فهارس امتدادية وتحسينات للتعابير التجميعية في المعاينة

استعرضت Microsoft في مدونة .NET مجموعة من الميزات المتاحة في المعاينة الأولى لـ C# 15، التي ستأتي مع .NET 11، ومنها تمرير معاملات إلى منشئات المجموعات، والفهارس الامتدادية، وتسميات حلقات التكرار. وتستهدف التغييرات تقليل الشيفرة الوسيطة وتحسين وضوح بعض الأنماط اليومية في البرمجة.

24 أغسطس 2026
3 دقائق قراءة
191 قراءة
certi.news Editorial Team
C# 15 تضيف فهارس امتدادية وتحسينات للتعابير التجميعية في المعاينة

كشفت Microsoft عن ميزات جديدة متاحة في المعاينة لـ C# 15، الإصدار الذي سيأتي مع .NET 11. ويشمل التحديث أنواعاً اتحادية، وتسلسلات هرمية مغلقة، ومعاينة للنموذج المحدّث للتعامل مع الشيفرة غير الآمنة، إلى جانب تغييرات أصغر تهدف إلى تقليل الشيفرة الإجرائية المتكررة في الاستخدام اليومي.

معاملات داخل التعابير التجميعية

تستطيع التعابير التجميعية في C# تحويل القيم إلى أنواع متعددة من المجموعات، لكنها لم تكن تتيح سابقاً تمرير معاملات إلى المنشئ الأساسي أو إلى دالة الإنشاء. تضيف C# 15 عنصراً جديداً بصيغة with(...)، يوضع في بداية التعبير، لتمرير هذه المعاملات.

يسمح ذلك مثلاً بإنشاء قائمة مع تحديد السعة مباشرة داخل التعبير، أو إنشاء HashSet مع تمرير StringComparer.OrdinalIgnoreCase، بدلاً من فصل الإنشاء عن إضافة العناصر. وتذكر Microsoft أن هذه القدرة تمهّد لبناء صياغة تعابير القواميس المرتقبة، التي ستحتاج غالباً إلى تحديد أداة المقارنة المستخدمة للمفاتيح.

الوصول إلى العناصر عبر فهارس امتدادية

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

في المثال الذي تعرضه Microsoft، كان الوصول إلى عنصر في IEnumerable<int> يتطلب أسلوباً مساعداً مثل ElementAtIndex. أما الصياغة الجديدة فتسمح باستخدام numbers[2] عبر فهرس امتدادي مرتبط بالمستقبل. وتوضح المدونة أن الفهارس لا يمكن أن تكون ساكنة، لذلك يجب أن يتضمن حاوي الامتداد مستقبلاً مسمى.

تسميات لحلقات break وcontinue

تتيح C# 15 تسمية حلقات التكرار ثم توجيه break أو continue إليها مباشرة. يفيد ذلك في الحلقات المتداخلة، حيث كان الخروج من الحلقة الخارجية يتطلب عادةً متغيراً منطقياً، أو استخدام goto، أو نقل المنطق إلى دالة منفصلة.

عملياً، تجعل التسمية هدف الخروج واضحاً داخل الشيفرة وتلغي الحاجة إلى متغير لتتبع ما إذا كان العنصر المطلوب قد عُثر عليه. ويعرض المثال حلقة مسماة scan يمكن الخروج منها مباشرة باستخدام break scan.

ما الذي يتغير للمطورين؟

لا تقدم هذه الميزات تغييراً في نموذج تشغيل .NET بقدر ما تعيد تنظيم صياغة الشيفرة وتقلل بعض القوالب المتكررة. وتبرز قيمتها خصوصاً في المشاريع التي تستخدم التعابير التجميعية، أو تتعامل مع حلقات متداخلة، أو تحتاج إلى واجهات وصول أكثر اختصاراً للأنواع القابلة للتمديد.

لكن الميزات ما تزال ضمن المعاينة، ولذلك لا تمثل بعد واجهة نهائية مستقرة. تدعو Microsoft المطورين إلى تنزيل .NET 11 وتجربة C# 15 على تطبيقاتهم، مع الرجوع إلى المرجع الكامل لما هو جديد والمشاركة في النقاشات الجارية ضمن مشروع csharplang. ولا يحدد المصدر في هذه المادة موعداً نهائياً لتحويل الميزات إلى إصدار مستقر.

مصدر الخبر
كيف أعددنا هذا الخبر؟

اعتمد الخبر على المصدر الأصلي الموضح أعلاه. قد نستخدم أدوات آلية للمساعدة في الاستخراج والتصنيف والصياغة، لكن النشر يخضع لقواعد تمنع المحتوى المكرر والقصير أو الروتيني منخفض القيمة. اقرأ سياستنا التحريرية.

c
كاتب المقال

certi.news Editorial Team

certi.news Editorial Team

The certi.news editorial team monitors technical sources and reconstructs news, verifying facts and context prior to publication.

ما الذي تحتاج معرفته

تستعرض Microsoft ميزات معاينة جديدة في C# 15، المقرر أن تأتي مع .NET 11، تشمل معاملات داخل التعابير التجميعية، والفهارس الامتدادية، وتسميات حلقات التكرار. ما تزال هذه الميزات غير نهائية، ولا يحدد المصدر موعداً لإصدارها المستقر.

  • تضيف C# 15 الصيغة with(...) لتمرير معاملات إلى منشئات المجموعات داخل التعابير التجميعية.
  • يمكن استخدام الفهارس الامتدادية للوصول إلى عناصر بعض الكائنات بصيغة تشبه الفهرسة الأصلية، مثل numbers[2].
  • تسمح تسميات الحلقات بتوجيه break أو continue مباشرة إلى حلقة محددة، ما يفيد في الحلقات المتداخلة.
  • تشمل المعاينة أيضاً أنواعاً اتحادية وتسلسلات هرمية مغلقة ومعاينة لنموذج محدث للتعامل مع الشيفرة غير الآمنة.
  • تشجع Microsoft المطورين على تجربة الميزات عبر .NET 11 والمشاركة في نقاشات مشروع csharplang.

أسئلة شائعة

متى ستتوفر ميزات C# 15؟

ستأتي مع .NET 11، لكنها متاحة حالياً في المعاينة ولم يحدد المصدر موعداً نهائياً لإصدار مستقر.

ما فائدة معاملات with(...) في التعابير التجميعية؟

تتيح تمرير معاملات إلى منشئ المجموعة أو دالة الإنشاء مباشرة داخل التعبير، مثل تحديد سعة قائمة أو تمرير StringComparer إلى HashSet.

ما الذي تتيحه الفهارس الامتدادية؟

تسمح بالوصول إلى عنصر من كائن مستقبل كما لو أن الفهرس معرف ضمن نوعه، مع اشتراط وجود مستقبل مسمى في حاوي الامتداد.

كيف تساعد تسميات حلقات التكرار؟

تتيح توجيه break أو continue إلى حلقة مسماة مباشرة، مما يقلل الحاجة إلى متغيرات منطقية أو goto في الحلقات المتداخلة.

استكشف هذه القصة

المواضيع والجهات المرتبطة

من نفس التصنيف

مقالات قد تهمك

عرض كل الأخبار