سؤال

ما هي ج#3.0 ميزات اللغة التي يمكننا استخدامها في تطبيق يستهدف إطار عمل .Net 2.0؟

ملاحظة: أعرف القليل من الأشخاص الذين يحبون تعبيرات Lambda و var الكلمة الرئيسية

هل كانت مفيدة؟

المحلول

يرجى الاطلاع هنا:

استخدام بناء الجملة C# 3.0 (.Net 3.5) في تطبيق .Net 2.0

للتعرف بشكل كامل على ما يمكنك وما لا يمكنك فعله عند استهداف .NET 2.0 Framework واستخدام C# 3.0.

في ملخص:

نوع عمل طرق الامتداد، ومع ذلك، فإنها تتطلب "System.Runtime.CompilerServices.ExtensionAttribute" لكي تعمل، وهذا النوع موجود داخل System.Core DLL (الذي لا يعد جزءًا صارمًا من إطار عمل .NET 2.0).

لا يمكن استخدام بناء جملة الاستعلام "خارج الصندوق" إذا جاز التعبير، ومع ذلك، يمكن استخدامه إذا كان ملف DLL لجهة خارجية (مثل لينكبريدج) يستخدم.يقوم ملف DLL هذا بإعادة تنفيذ العديد من الأنواع "المفقودة" التي تحتاجها لتنفيذ LINQ بشكل فعال عند استهداف إطار عمل .NET 2.0.كما أنه ينفذ أيضًا نوع "ExtensionAttribute" المطلوب لكي تعمل أساليب الامتداد، لذا فإن إضافة/الرجوع إلى LINQBridge DLL من مشروعك سيؤدي إلى تمكين LINQ وصياغة/تعبيرات الاستعلام وطرق الامتداد!

نصائح أخرى

انا لدي مقالة حول هذا الموضوع بالذات.

باختصار:

أيد:

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

مدعوم جزئيا:

  • طرق الامتداد (تتطلب سمة) وتعبيرات الاستعلام (تتطلب شيئًا مثل LINQBridge لتكون مفيدة)

غير معتمد:

  • تم تحويل Lambdas إلى أشجار تعبيرية

في الواقع، لقد سمعت هذا التحويل إلى أشجار التعبير يكون متاح بمساعدة تنفيذ Mono لـ System.Core.رغم أنني لم أجربه بعد ...أظل أقصد القيام بذلك (ثم تحديث الصفحة).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top