Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-Can';当通过子类实现的接口继承和使用时,找不到方法的用法_C#_Visual Studio_Resharper - Fatal编程技术网

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

C#-Can';当通过子类实现的接口继承和使用时,找不到方法的用法,c#,visual-studio,resharper,C#,Visual Studio,Resharper,我将VisualStudio 2008和2010与ReSharper一起使用,当我尝试查找给定方法的用法时,没有得到任何结果,尽管该方法被继承,然后通过接口调用。发生了什么?这是一个VS/ReSharper错误吗? 请参见下面的示例: using System; namespace UsageNotFound { interface MyInterface { void Hello(); } class SuperClass { pub

我将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

可能是因为您的
超类
没有实现接口。这可能会导致ReSharper出现问题。尝试:

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

这一切都与
子类继承
Hello()
方法的顺序有关,方法来自
SuperClass
MyInterface


我很惊讶,你没有收到一个警告,
子类.Hello()
(通过实现接口定义)将隐藏
超类.Hello()

这是一个已知的问题:没有当前的目标修复版本

对我有效(VS 2010+ReSharper 6),它获得了正确的智能感知,并且编译得很好。@peer。你不需要有一个访问权限修改器,它也不适合我。对于Resharper 5.1。@user1022016,Ray:这很可能是Resharper 5.1的错误。ReSharper 6工作正常。@m-y问题不在于intellisense或编译。问题是,
Hello
的impl上的Find Usages没有告诉您
Main
中的调用,尽管我同意基类应该实现接口,因此它正在创建一个函数
Hello()
,不必解决他的问题。他的问题可能与ReSharper版本有关?我认为超类在概念上不需要实现接口。超类甚至可能完全位于一个单独的项目(或库)中,并且与接口完全解耦。我不认为存在任何隐藏:实现必须显式提供,并且在基类中提供。该示例中只有该方法的一个实现。几个月前我已经修复了它=)