c# -当继承并通过子类实现的接口使用方法时,找不到方法的用法
本文关键字:使用方法 接口 找不到 用法 方法 实现 继承 子类 | 更新日期: 2023-09-27 18:12:47
我正在使用VisualStudio 2008和2010,都与ReSharper,当我试图查找给定方法的用法时,我没有得到结果,尽管该方法被继承,然后通过接口调用。怎么了?这是VS/ReSharper的bug吗?请看下面的例子:
using System;
namespace UsageNotFound
{
interface MyInterface
{
void Hello();
}
class SuperClass
{
public void Hello() //NOTE: VS 2008/2010 (with resharper)
seems unable to find usages on this!!!
{
Console.WriteLine("Hi!");
}
}
class SubClass : SuperClass, MyInterface
{
public static MyInterface GetInstance()
{
return new SubClass();
}
}
class Program
{
static void Main(string[] args)
{
SubClass.GetInstance().Hello();
}
}
}
谢谢,法布里奇奥
这是一个已知的问题:http://youtrack.jetbrains.net/issue/RSRP-46273没有当前的目标修复版本
可能是因为您的SuperClass
没有实现接口。这可能会导致ReSharper出现问题。试一试:
class SuperClass : MyInterface
{
public void Hello()
{
Console.WriteLine("Hi!");
}
}
这一切都与SubClass
从SuperClass
和MyInterface
继承Hello()
方法的顺序有关。
我很惊讶,你没有得到一个警告,SubClass.Hello()
(从实现接口定义)将隐藏SuperClass.Hello()
。