سؤال

ما هي قاعدة التحقق من التعليمات البرمجية الثابتة التي ترغب في رؤيتها إلى FXCOP و/أو Gendarme؟

لماذا ترغب في رؤية القاعدة المضافة ، على سبيل المثال ما هي الفوائد وما إلى ذلك؟

كيف يمكن تنفيذ حكمك؟

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

المحلول

أنا شخصياً أفضل أن أرى عدم استخدامه IDisposable التطبيقات في using صياغات.

لذلك إذا كان لديك رمز مثل هذا:

var fs = new FileStream(...);

// Other code.

fs.Dispose();

سيخبرك أن تستخدمه في using بيان.

ستكون الفائدة هي أنه من شأنه أن ينبهك إلى الحالات التي قد لا تكون على دراية بها حيث لا يتم التخلص من الأشياء التي يجب التخلص منها في الوقت المناسب.

ومع ذلك ، هناك أوقات كافية حيث يكون وضع صحيح لعدم الإعلان IDisposable التطبيقات في بيان باستخدام قاعدة كهذه لتصبح ألمًا بسرعة كبيرة. في أغلب الأحيان ، هذه الحالة تأخذ IDisposable التنفيذ كمعلمة لأسلوب.

ما أفعله ليس يعني استخدام الفئات التي تزيل فيها تفاصيل التنفيذ الحاجة إلى الاتصال Dispose, ، (على سبيل المثال MemoryStream أو DataContext) ؛ تلك تنفيذ IDisposable ويجب أن يكون دائمًا Dispose دعا عليهم ، بغض النظر عن التنفيذ التفاصيل ، لأنه من الأفضل دائمًا الترميز مقابل العقد المكشوف.

نصائح أخرى

أرغب في تحديد وتنفيذ القواعد الخاصة بي بسرعة كبيرة. لقد جربت هذا مرة واحدة لـ FXCOP ، لكنني وجدت أن واجهة برمجة التطبيقات ليست واضحة للغاية - ولم يكن هناك الكثير من الوثائق. لقد استخدمت FXCOP 1.36 ، ربما تغيرت الأمور ...

لذلك أود أن أرى FXCOP لديه واجهة واضحة وسهلة الاستخدام ... سيكون ذلك رائعًا :)

القواعد التي حاولت تنفيذها هي:

  • الوثيقة ايثيوودس
  • DocumentInternaltypes
  • ...

في الأساس ، أردت فرض مجموعات XML على الأعضاء غير العاملين.

أود حقًا أن يكون التحليل الثنائي ذكيًا بما يكفي للتعرف على إمكانية وجود واجهة.

إذا تمكنت من تحديد الأنواع المحددة وأعضائها ، إذا كانت هناك مشاعات يمكن استقراءها في واجهة.

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

عند التفكير في هذا الأمر ، أود أيضًا أن أرى أن التحليل الثنائي ذكي بما يكفي للتحقق من تصنيف معدلات الوصول المحتمل.

لا ينبغي أن يكون من الصعب تحديد ما إذا كان يمكن تقييد فئة أو خاصية أو طريقة أكثر.

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