【发布时间】:2010-11-20 20:15:06
【问题描述】:
Visual Studio 是否有一个扩展允许从一个方法执行 Go to Definition 并让它直接导航到具体的实现而不是接口?我的大部分代码都是基于接口的,如果我执行定义,它会直接进入有意义的接口,很高兴有 Go to Concrete implementation..Thankx
【问题讨论】:
标签: .net
Visual Studio 是否有一个扩展允许从一个方法执行 Go to Definition 并让它直接导航到具体的实现而不是接口?我的大部分代码都是基于接口的,如果我执行定义,它会直接进入有意义的接口,很高兴有 Go to Concrete implementation..Thankx
【问题讨论】:
标签: .net
如果您使用resharper,它会提供 go to implementation,如果有不同的实现,您可以在不同的实现中进行选择。
同样在Visual Studio中你可以使用find all references,方法图标和调用不同,你也可以按F8导航。
在visual studio 2010或更高版本中,您可以使用“ctrl”+“”,并在此操作中出现的窗口中写入名称,然后在显示的候选中进行选择,在这种情况下您可以编写缩写,. ...
【讨论】:
这是不可能的,因为当您右键单击一个方法时 IDE 不知道使用的是哪个实现。鉴于此示例,IDE 应导航到哪个方法:
public interface IGreeterService
{
string Greet(string person);
}
public class EnglishGreeterService : IGreeterService
{
string Greet(string person)
{
return "Hello, " + person + ".";
}
}
public class GermanGreeterService : IGreeterService
{
string Greet(string person)
{
return "Guten Tag, " + person + ".";
}
}
public class PersonGreeter
{
private readonly IGreeterService _Service;
public PersonGreeter(IGreeterService service)
{
_Service = service;
}
public void SayHallo()
{
_Service.Greet("user282807");
}
}
不可能知道PersonGreeter类中使用了哪个实现;这就是接口的重点,因此您不依赖特定的实现。当然,这在开发过程中可能会很烦人。
【讨论】:
如果您使用的是CodeRush,那么您可以使用 Ctrl + Alt + N 调出导航选项并转到实现
【讨论】:
您好,我不知道它是否有用,但我使用 Visual Assist“查找所有参考资料”
【讨论】:
Visual Assist 在 Build 1836(2010 年 11 月 10 日)的 alt+g(转到)命令中包含接口实现。
【讨论】: