تحذير FXCOP CA1801: "المعلمة لا تستخدم أبدًا ..."
-
26-09-2019 - |
سؤال
في مهمة مستمرة لتنظيف قاعدة الكود التي ورثتها ، عبر 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 كذلك.