通常在浏览代码时,我会遇到这样的事情:
public class Fruity
{
private IOrange _Orange;
public Fruity()
{
_Orange = new Orange() as IOrange;
}
public void PrepareFruit()
{
return _Orange.Peel();
}
}
很好,所以现在我想看看Peel方法是如何实现的。右键单击该方法会给我Go To Definition,它将我带到界面存根。
好的,严格地说,定义是由接口归因的,因为私有变量是以这种方式定义的,但有没有办法直接去实现?
当然,查找所有引用都是调用,接口和具体结构的分散方法。但是在这种情况下,实现的来源是显而易见的,所以我应该能够跳到它,我曾经想过......
显然,有时会出现歧义,这里有很好的描述:
Go to definition on concrete type
但是,当实施非常明确时,应该有一个Go To Implementation选项。
答案 0 :(得分:7)
如果您双击或突出显示Peel
并按CTRL+,
,您将获得“导航到符号”窗口,该窗口将列出实际实施,通常作为第二项。这是在没有第三方工具的情况下找到它的最快方法。与“查找所有引用”不同,它只显示方法定义,而不是它所调用的任何位置。
答案 1 :(得分:2)
如果您转到Visual Studio菜单“查看”并选择“代码定义窗口”,当您单击.Peel()
时,可能会显示.Peel()
的实现(这并不总是有效) ,但试试看,然后看。)
答案 2 :(得分:1)
当然已经存在于Visual Studio中了!从那以后它就在那里。
右键单击您的代码(例如:属性)并选择“查看调用层次结构”。在Call Hierarchy窗口中,选择Implements文件夹。
你有。为何选择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属性(在类中或在接口内部的任何地方)并选择“View Call Hierarchy”,应该说哪个类实现了它,因此也就是整个接口。
一开始我们都喜欢Resharper,随着时间的推移,我们都讨厌它!
答案 3 :(得分:0)
Visual Studio 2015可以通过" Go To Implementation"扩展名 - https://visualstudiogallery.msdn.microsoft.com/0ed93222-83cd-4db3-92bc-a78909047156
如果有多个实现,它会显示一个列表,以便您可以选择要跳转的列表。
答案 4 :(得分:0)
使用Visual Studio> = 2015,您可以使用快捷键ctrl + F12
跳转到实现