在Visual Studio中,前往定义 - 接口

15

有没有一种方法可以显示实现某个接口方法的所有类。如果在Visual Studio中单击方法调用上的F12,则会跳转到其定义。如果它是一个接口,那么你仍然需要去寻找实现该接口的类。能否弹出一个窗口并选择其中一个实现该接口的类呢?是否存在这种功能?

6个回答

13
不需要安装任何Visual Studio扩展,如果右键点击该方法并选择“查找所有引用”或按下f12 + shift,则会返回Find Symbol Results中按接口、类、方法调用排序的实现列表。
更新:
安装VS 2015后,右键点击-GoToImplementation(如果您有一个接口的实现,则VS将直接导航到它,如果您有两个或更多,则VS将列出它们)。

2
CTRL - F12(转到实现) ,Visual Studio 2015 - florian.isopp

7

当然,在Visual Studio中已经存在!它自始至终都在那里。

右键单击您的代码(例如:属性),并选择“查看调用层次结构”。在调用层次结构窗口中,选择实现文件夹。

就是这样。为什么要使用Resharper??? 当然,它不像Resharper中的直接查询界面实现那样复杂,但只有一个属性或来自该接口的一个方法就足够了。例如:

public interface IModule
{
int Count { get; set; }
}

public class Module : Imodule
{ 
  public int Count {get; set;}
}

public class Module2 : Imodule
{ 
   public int Count {get; set;}  
}

右键点击 Count 属性(可以在类或接口内)并选择“查看调用层次结构”,这将显示实现此属性的类,从而得知整个接口。

一开始我们都喜欢 Resharper,但随着时间推移,我们都讨厌它!


7
你需要使用能够实现此功能的插件(或者自己编写)。 ReSharperVisual Assist 都提供了这个功能。

2
另一种选择是将光标放在您想要调查的方法上,然后按下ctrl +,(控制和逗号键)。这将显示导航到对话框,其中包括接口和方法实现。

2
我使用DevExpress/CodeRush Go To Implementator plugin(全部免费)。
如果您安装了DevExpress,如何启动它并不明显,您应该使用shift-ctrl-alt-o键盘快捷键,但我建议通过添加以下注册表项将其添加到文件菜单中:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Developer Express\CodeRush for VS\11.2]
"HideMenu"=dword:00000000

(如果您使用的是32位系统),请删除“\Wow6432Node\”。

1

Reflector可以做到这一点(至少在它打开的程序集之间)。

(显然,任何程序集中都可能有实现,因此对于每个实现的完整搜索需要检查每个程序集。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接