继续执行清理我继承的代码库,通过stylecop和fxcop,以及来自fxcop的警告之一是CA1801:从不使用Something.MyProperty.set(字符串)的参数'value'。删除参数或在方法体中使用它。
它抱怨的代码是:
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中的警告,除了将此特定属性重构为第二个接口,然后更新使用此接口的所有其他类?我想我可能刚刚回答了我自己的问题? :d
答案 0 :(得分:2)
我认为是因为您收到此警告的“新”关键字。尝试替换删除带有覆盖的新,看看警告是否消失。
public class Something : ISomeInterface
public string MyProperty
BTW,我建议使用NotImplementedException而不是InvalidOperationException。