سؤال

في مهمة مستمرة لتنظيف قاعدة الكود التي ورثتها ، عبر Stylecop و FXCOP ، ولم يتم استخدام أحد التحذيرات من FXCOP CA1801: المعلمة "قيمة" لشيء ما. myproperty.set (السلسلة). قم بإزالة المعلمة أو استخدمها في الجسم.

الرمز الذي يشكو منه هو:

public class Something : ISomeInterface
    public new string MyProperty
    {
        get
        {
            throw new InvalidOperationException("MyProperty is not implemented.");
        }

        set
        {
            throw new InvalidOperationException("MyProperty is not implemented.");
        }
    }

يتم تعريف هذه الخاصية في الواجهة ، ولكن في هذه الحالة ليست ضرورية في الفئة المشتقة - بصرف النظر عن الاستخدام المشكوك فيه قليلاً لـ InvalidOperationException بدلاً من NotimplementEdException ، والذي أعتقد أنه شائع ، أتساءل عما إذا كان ينبغي علي فقط استبعاد التحذير في FXCOP مع ملاحظة تشرح لماذا؟

لا أرى ما الذي يمكنني فعله أيضًا من حيث أفضل الممارسات ، لمنع التحذير في FXCOP ، بخلاف إعادة إنشاء هذه الخاصية بالذات في واجهة ثانية ، ثم تحديث جميع الفئات الأخرى التي تستخدم هذه الواجهة؟ أعتقد أنني ربما أجبت للتو على سؤالي؟ :د

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

المحلول

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

public class Something : ISomeInterface
    public string MyProperty

راجع للشغل ، أوصي باستخدام notimplementedException بدلاً من invalidoperationException كذلك.

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