سؤال

هل هناك أي طريقة لتعطيل استخدام الكلمة الأساسية "الديناميكية" في .net 4؟

اعتقدت أن ميزة تحليل الكود في VS2010 قد تحتوي على قاعدة لفشل الإنشاء إذا تم استخدام الكلمة الأساسية الديناميكية ولكن لم أتمكن من تحديدها.

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

المحلول

إنها جزء من لغة C# 4.0 ، لذلك لا ليس حقًا.

يمكنك استخدام FXCOP للبحث عنه وفشل البناء إذا واجهته.

قد يعمل Cop Style بدلاً من ذلك:

http://code.msdn.microsoft.com/sourceanalysis

فيما يلي رابط يتحدث عن نفس المشكلة وكيف يمكن أن يكون COP Style هو الحل. هناك أيضًا منشور حول كيفية الحصول على COP FX يحتمل أن يبحث عن الكلمة الرئيسية الديناميكية ، على الرغم من أنها ليست مثالية.

http://social.msdn.microsoft.com/forums/en/vstscode/thread/8ce407ba-bdf7-422b-bcd-ca4701c3a76f

نصائح أخرى

الهدف .NET 1.0؟ :-)

أو قم بمراجعات التعليمات البرمجية.

(أو ، لكي تكون أقل جوانبًا ، يجب أن يكون من السهل جدًا كتابة قاعدة FXCOP أو CA مخصصة لعدم السماح للديناميكية)

ألن تقتل فقط لماكرو C ++ الآن؟ :-)

الكلمة الرئيسية الديناميكية ليست شريرة ، ولكن يمكن أن يكون استخدامها.

يؤدي إلى أخطاء رمز لا يمكنك العثور عليها إلا أثناء وقت التشغيل. يجب تجنب هذا بأي ثمن. أخطاء وقت التشغيل سيئة. أخطاء وقت الترجمة جيدة.

يمكنك استخدام شيء مثل ما يلي لتعيين المعايير الخاصة بك.http://joel.fjorden.se/static.php؟page=codestyleenforcer

إزالة الإشارة إلى Microsoft.CSharp.dll, ، وأعتقد ربما كل استخدامات dynamic سوف تفشل في التجميع.

لست متأكدًا من أنني أفهم سبب هذا الخوف غير العقلاني من الكلمة الرئيسية الديناميكية.كان هناك هذا النوع من الهستيريا بشأن المتغيرات المجهولة والكلمة الأساسية var لـ .NET 3.5 إلا أن ذلك كان مجرد غبي نظرًا لأن هذه الأنواع مشروعة ومحددة بشكل ثابت.

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

كانت هذه بالضبط هي التعليمات التي قدمتها لفريقي لأنني أجد أنه من غير المرجح أن نستخدم الكلمة الأساسية الديناميكية لأننا لا نكتب نشاط التشغيل المتداخل لـ COM.وبعد ذلك، سأؤجل أي نوع من استخدام الوكيل الديناميكي إلى مكتبة قائمة مثل Linfu أو Castle وأترك ​​لهم تنفيذ الوكلاء الديناميكيين لاستخدام الكلمة الأساسية الديناميكية أو عدم استخدامها.

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