【发布时间】:2023-08-04 06:55:02
【问题描述】:
在继续清理我通过 stylecop 和 fxcop 继承的代码库的任务中,来自 fxcop 的警告之一是 CA1801:Something.MyProperty.set(string) 的参数“值”从未使用过。移除参数或在方法体中使用。
它抱怨的代码是:
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
【问题讨论】:
-
其实这种情况下应该使用NotSupportedException。 NotImplementedException 表示开发人员尚未完成方法的代码。详情请见blogs.msdn.com/b/brada/archive/2004/07/29/201354.aspx。
-
是的,你确实是正确的,谢谢!
标签: interface properties fxcop suppress