转到实现的方法而不是接口
本文关键字:接口 方法 实现 | 更新日期: 2023-09-27 18:07:38
在浏览代码时,我经常会遇到这样的情况:
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 Implementation选项
如果双击或高亮Peel
并按下CTRL+,
,您将获得"导航到符号"窗口,该窗口将列出实际实现,通常作为第二项。这是在没有第三方工具的情况下找到它的最快方法。与"查找所有引用"不同,它只显示方法定义,而不显示任何调用它的地方。
如果你转到Visual Studio菜单"视图"并选择"代码定义窗口",当你点击.Peel()
时,你可能会显示.Peel()
的实现(这并不总是工作,但尝试一下看看)。
使用Visual Studio>= 2015,您可以通过快捷键ctrl + F12跳转到实现
当然在Visual Studio中已经存在了!它从一开始就在那里。
右键单击你的代码(例如:属性),选择"查看调用层次结构"。在Call Hierarchy窗口中选择Implements文件夹。
你在这儿。为什么是Resharper ?当然,这并不像从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,随着时间的推移,我们都讨厌它了
Visual Studio 2015可以使用"Go To Implementation"扩展- https://visualstudiogallery.msdn.microsoft.com/0ed93222-83cd-4db3-92bc-a78909047156
如果有多个实现,它将显示一个列表,以便您可以选择跳转到哪个。