C# - 通过子类实现的接口继承和使用时,找不到方法的用法

时间:2011-10-31 13:21:24

标签: c# visual-studio resharper

我正在使用VisualStudio 2008和2010,都使用ReSharper,当我尝试查找给定方法的用法时,我得不到任何结果,尽管该方法是继承的,然后通过接口调用。怎么了?这是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

3 个答案:

答案 0 :(得分:1)

可能是因为您的SuperClass未实现该界面。这可能会导致ReSharper出现问题。尝试:

   class SuperClass : MyInterface
   {
       public void Hello()
       {
           Console.WriteLine("Hi!");
       }
   }

答案 1 :(得分:1)

这是一个已知问题:http://youtrack.jetbrains.net/issue/RSRP-46273没有当前目标修正版

答案 2 :(得分:0)

这与SubClass从[{1}}和Hello()继承SuperClass方法的顺序有关。

我很惊讶您没有收到MyInterface(来自实施界面定义)隐藏SubClass.Hello()的警告。