当没有运行应用程序时,在接口类型的方法上按F12(转到定义)将转到接口本身。
是否存在任何关键组合(或者我可以制作的组合),这将允许我提供跳转到的默认实现,或者允许我快速选择要执行的实现?
我们的应用程序中有几个层,它可以节省大量时间,以便能够直接跳转到Mock
或Real
实现,而不是在源代码管理中导航到它们。
答案 0 :(得分:25)
Visual Studio 2015 Update 1添加了Edit.GoToImplementation,它出现在上下文菜单中,但默认情况下没有与之关联的键盘快捷方式。
在Visual Studio Update 2中,我们添加了一个默认快捷键Ctrl + F12。
答案 1 :(得分:11)
如果使用VS 2015及以上版本:
See answer below:
Visual Studio 2015 Update 1添加了Edit.GoToImplementation,它出现在上下文菜单中,但默认情况下没有与之关联的键盘快捷方式。
在Visual Studio Update 2中,我们添加了一个默认快捷键Ctrl + F12。
如果使用VS 2013及以下版本:
我们遇到了同样的问题并开始使用Resharper。它有一个很好的 Goto Implementation 功能,工作得非常好,我记得。
问题是这个工具不是免费的(当然这是合理的,因为它提供的功能远远超过上述功能)。
如果没有这个,我使用查找所有引用并通过查看路径快速识别实现(我们有接口,实现和模拟很好地隔离)。但是你可能已经自己发现了这种可能性。
此外,您可以考虑this answer中提到的选项(虽然它适用于界面的方法,而不是整个实现):
答案 2 :(得分:10)
Visual Studio 2015有一个" Edit.GoToImplementation"命令,您可以应用键盘快捷方式。
工具/选项/环境/键盘,然后输入" Edit.GoToImplementation"进入show命令文本框。我使用Shift + F12,所以我改变"在"中使用新的快捷方式。到文本编辑器,然后在"按快捷键"我按Shift + F12并单击"分配"。
答案 3 :(得分:7)
只需按 CTRL + F12 而不是 F12 。这将直接带您进行实施。
答案 4 :(得分:0)
如果设置了键绑定,但仍然不能带您进入实现,请确保没有其他应用程序具有相同的键绑定。就我而言,DeskPins也使用了CTRL + F12。花了我几分钟时间才找到它。
答案 5 :(得分:-1)
一个非常简单的解决方案是将实现与接口放在同一文件中! ;-)
namespace Foo.Services
{
public interface IService
{
...
}
public class Service : IService
{
...
}
}