C# – 通过子类实现的接口inheritance和使用时,找不到方法的用法
我正在使用VisualStudio 2008和2010,都使用ReSharper,当我尝试查找给定方法的用法时,我得不到任何结果,尽管该方法是inheritance的,然后通过接口调用。 怎么了? 这是VS / ReSharper的错误吗? 请参阅以下示例:
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(); } } }
谢谢,Fabrizio
这是一个已知问题:http: //youtrack.jetbrains.net/issue/RSRP-46273 ,没有当前目标修复版本
可能是因为您的SuperClass
没有实现该接口。 这可能会导致ReSharper出现问题。 尝试:
class SuperClass : MyInterface { public void Hello() { Console.WriteLine("Hi!"); } }
这与SubClass
从SuperClass
和MyInterface
inheritanceHello()
方法的SuperClass
MyInterface
。
我很惊讶您没有收到SubClass.Hello()
(来自实现接口定义)将隐藏SuperClass.Hello()
的SuperClass.Hello()
。