有没有办法导航到界面背后的方法的真正实现?

use*_*291 167 .net c# vb.net visual-studio

在Visual Studio中,右键单击方法调用时,除了通过接口访问此方法之外,您将在类中执行该方法:在这种情况下,您将转到接口方法而不是实际实现.

是否有方法/提示(关键快捷方式或任何东西)来访问这个实际的实现?否则你只是为了记住你实现它的地方而添加一些注释,这真的没有效率且容易出错!

更新:有趣的答案,但我并不满意,因为一切都很麻烦.我将举一个确切的例子:

IInterface iInterface = someObject;                        
iInterface.someMethod();
Run Code Online (Sandbox Code Playgroud)

实际上,如果Visual Studio在方法调用之上只看一行就会有点聪明,它会看到真实对象在哪里.这将节省我很多按键,并避免使用"查找所有引用",然后用我疲惫的眼睛扫描线条,看看哪一行包含正确的一行:)

Maj*_*ing 245

我做以下事情:

1)右键单击该方法,然后单击"查看调用层次结构"(或快捷键Ctrl + K,Ctrl + T)

2)展开"Implements x"文件夹,然后显示该方法的所有实现.点击一个去那里.

相对快速和容易.令人讨厌但是接口本身似乎没有相应的东西.


更新:从Visual Studio 2015更新1开始,右键单击方法并选择转到实现.您还可以通过工具>选项>环境>键盘将其映射到键盘快捷键,然后搜索Edit.GoToImplementation命令.默认快捷方式是Ctrl+F12.(F12将导航到界面).


  • 我可以跳过第1步.只需从您工作的地方"查看呼叫层次结构"(或快捷键Ctrl + K,Ctrl + T),一起跳过界面.我在VS 2013. (5认同)

Rol*_*sen 46

使用VS2013,可以将光标放在方法上,并使用Navigate To ...(CTRL +,),它将显示声明名称的所有位置.如果不同的接口使用相同的方法名称,则不能正常工作.

使用VS2015 Update 1,现在有一个名为"Go To Implementation"的新快捷方式.

  • 如果您正在使用resharper,可以使用Alt + End. (4认同)

Sam*_*ell 16

我为Visual Studio 2010和Visual Studio 2012创建了一个名为Inheritance Margin的免费扩展,以提供此特定功能,并在方法由于签名匹配而实现接口方法时给出明确指示.在当前版本中,您可以右键单击任何字形以获取要导航到的项目菜单.

继承保证金 - Visual Studio库

截图

  • resharper试验已经在工作中到期,尝试了这个扩展并且它摇滚!多谢,伙计 (3认同)

Phi*_*son 15

右键单击"查找所有引用".

这将显示使用该方法的所有位置的代码行,包括接口声明和接口方法的实现.然后,您可以单击该行以跳转到代码位置.

  • 查找符号的替代方法是调用层次结构.它具有以文件夹结构分组的方法:调用'...',调用来自'...'和实现'...' (6认同)
  • "查找所有引用"的快捷键是"Shift + F12". (4认同)

Rob*_*cus 8

根据您拥有的Visual Studio版本,我会有条件地说"是".

我目前正在使用Ultimate,并且没有其他版本来验证这一点.也就是说,在Ultimate中,您可以使用Architecture Explorer来查找实现.它比右键单击方法更复杂,但这是它的工作原理.

  • 转到View->Architecture Explorer(或CTRL-W,N)
  • 单击"类视图",在打开的列表中找到包含接口的命名空间.
  • 在命名空间列表的右侧,是一个垂直按钮Types.点击这个
  • 选择 Interfaces
  • 从列表中选择您的界面
  • Members然后会出现一个垂直按钮,显示在右侧.单击该按钮
  • 选择Implemented by(下Inbound Navigation),这将提供您的界面的实现列表.
  • 双击该实现将带您到课堂.


Jac*_*rui 6

在2012 Ultimate中,您可以在解决方案资源管理器中搜索界面.右键单击该界面并选择"派生类型",实现的类将显示在解决方案资源管理器中.不确定它是否适用于快递.

  • @George,您还可以让Visual Studio始终通过工具 - >选项 - >项目和解决方案 - >常规 - >"跟踪解决方案资源管理器中的活动项目"跟踪解决方案资源管理器中的当前打开文件 (2认同)

Max*_*imc 5

对于使用Resharper的人,按CTRL + F12将使您直接进入类方法!


Pau*_*ulG 5

Visual Studio 2015 Update 1(2015年12月发布)现已添加了右键单击"Go To Implementation"功能作为标准.


Akb*_*sha 5

Visual Studio 2015 更新 -第 1 版

您可以使用Edit.GoToImplementationCtrl+F12

它会引导您实现,就像它会引导您使用F12.