【发布时间】:2015-08-20 20:08:38
【问题描述】:
在以下示例中,Resharper 抱怨 DoA() 方法从未被使用过,尽管它是由“AImplementator”类实现的:
namespace Test
{
public interface A
{
// Method 'DoA' is never used
void DoA();
}
public class AImplementator: A
{
public void DoA()
{
throw new System.NotImplementedException();
}
}
}
我无法理解这种行为,因为正在使用该接口。
- 为什么会这样?
- 如何解决此警告?
Obs:我可以使用 cmets 或 [UsedImplicitly] 属性来抑制警告。但鉴于这种情况,这些选项似乎都不正确。我正在使用 Resharper 9.1。
【问题讨论】:
-
DoA 是一种方法而不是一种属性。除此之外,我刚刚尝试过,它并没有发出关于从未使用过
DoA的警告。可以提供截图吗?我得到的唯一警告是将interface A重命名为interface IA。 -
无法在 8.2 中重复此警告。
DoA()当然是一种方法。 -
在类中实现它不被视为使用它。这很有道理。
-
对我来说并不完全合理。它是公共接口的成员。 Resharper 无法知道 i/f 成员是否在任何地方或在全球数百万个开发人员项目中被调用。可能是 Resharper 中的错误?甚至 Jetbrains 也不是完美的!
标签: c# visual-studio-2013 resharper static-analysis resharper-9.1