"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا لا يكون لدى C# طريقة تمديد foreach لـ ienumerable؟

لماذا لا يكون لدى C# طريقة تمديد foreach لـ ienumerable؟

نشر في 2025-02-06
تصفح:125

Why Doesn't C# Have a ForEach Extension Method for IEnumerable?

الحالة الغريبة للامتداد المفقود foreach المفقود

مناقشة حديثة حول عدم وجود وظيفة zip أثارت سؤالًا ذا صلة: لماذا لا توفر C# طريقة تمديد ] واجهة؟ بشكل مثير للاهتمام ، فقط القائمة قائمة تتضمن هذه الوظيفة. كشف الغموض

هل هذا الإغفال تحسين الأداء؟ أم أن هناك سبب أعمق وكامن؟ تحاول عدة نظريات شرح هذه الفجوة الملحوظة.

المدمجة

foreach

ميزة يشير منظور واحد إلى أن عبارة C#'SENECTION foreach

تلبي بشكل كافٍ معظم احتياجات التكرار. غالبًا ما يُفضل بناء جملة موجز وقابل للقراءة:

foreach (عنصر في القائمة) { item.dosomething () ؛ }

foreach (Item item in list)
{
    item.DoSomething();
}

list.foreach (item => item.dosomething ()) ؛

list.ForEach(item => item.DoSomething());
foreach

امتداد ومع ذلك ، يجادل الآخرون بالفوائد العملية لـ foreach ()

طريقة التمديد في مواقف محددة. وتشمل هذه الفوائد:

محسّنة نوع السلامة:
    توفر طريقة التمديد فحص نوع الترجمة ، على عكس التحقق من وقت التشغيل لبيان
  • foreach . بديل بناء الجملة:
  • يبسط استدعاء المندوبين ، كما يتضح من "objects.foreach (dosomething) ؛".
  • طريقة التسلسل الإمكانات:
  • في حين يحتمل أن تكون عرضة للإفراط في الاستخدام ، فإن القدرة على سلسلة
  • foreach () هي ميزة مقنعة.
  • تحول في المنظور

مشكوك فيه في البداية ، يتعرف البعض الآن على قيمة طريقة التمديد foreach ()

في سيناريوهات معينة. تشير إعادة التقييم هذه إلى أن Microsoft قد تفكر في إضافة طريقة موحدة

foreach في إصدارات الإطار المستقبلي. يظل غياب طريقة التمديد هذه لـ ienumerable موضوع المناقشة. بالنظر إلى المزايا المحتملة ، يتوقع مجتمع المطور المزيد من التطورات ، على أمل رؤية هذه الفجوة التي تم معالجتها في مكتبة الامتداد C#.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3