在以下示例中,Resharper抱怨尽管已由“ AImplementator”类实现了DoA()
方法,但从未使用过:
namespace Test
{
public interface A
{
// Method 'DoA' is never used
void DoA();
}
public class AImplementator: A
{
public void DoA()
{
throw new System.NotImplementedException();
}
}
}
由于使用了接口,因此我无法理解此行为。
为什么会这样?
如何解决此警告?
观察员:我可以使用注释或
[UsedImplicitly]
属性禁止警告。但是考虑到这种情况,这些选项似乎都不正确。我正在使用Resharper 9.1。 最佳答案
该警告仅在Solution-Wide Analysis is enabled时显示。
该警告是关于接口方法的用法(在这种情况下,例如是调用)。下面的示例应对此进行演示(注意var
vs.接口是局部变量类型)。
var instance = new AImplementator();
// Does NOT make A.DoA() "used":
instance.DoA();
A instanceAsInterface = new AImplementator();
// DOES make A.DoA() "used":
instanceAsInterface.DoA();
关于c# - 如何避免出现“从不使用方法”消息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30673904/