如何找到接口的所有实现?
-
05-07-2019 - |
题
假设您有一个用 C# 定义的接口。查找提供接口实现的所有类的最简单方法是什么?
强力方法是在 Visual Studio 中使用“查找引用”并手动查看结果以将用法与实现分开,但对于大型代码库中的接口来说,该接口的使用量很大 引用的 由于实现相对较少,这可能非常耗时且容易出错。
在 Java 中,在代码库上运行 javadoc(使用 -private 选项来包含私有类)将生成接口的文档页面(例如 可比),其中包括接口以及任何子接口的所有实现类(尽管它不包括子接口的实现类,但通过深入到列出的子接口相对容易确定这些类)。我正在寻找这种功能,但需要使用 C# 和 Visual Studio。
其他提示
您可以右键单击方法名称(界面中的定义或其他类中的实现),然后选择“查看调用层次结构”。在“调用层次结构”窗口中,有“Implements”和“Implements”。文件夹,您可以在其中找到接口方法实现的所有位置。
将光标置于类或接口类型和
CTRL + F12
使用Visual Studio 2010 +
右键单击成员方法,然后选择查看调用层次结构。展开Implements文件夹。这列出了实现该方法所属接口的所有类型。
使用Resharper 7
右键单击界面>导航至>派生符号。 粗体中列出的符号直接来自界面。非粗体符号来自超类。
对于那些使用Visual Studio 2015的人来说,有一个很棒的扩展名为 Go To Implementation 。试一试。
安装完扩展程序后,您只需右键单击该界面的任何位置(例如IUrlShortener),然后单击 Go To Implementation
菜单。如果您只有一个实现该界面的类,单击该菜单将直接带您进入该类。如果您有多个实现该接口的类,它将列出所有类。
对于使用 Visual Studio 2015 的用户,请安装 Visual Studio 2015 Update 1 RC。来自 Visual Studio 博客:
今天,我们发布了 Visual Studio 2015 Update 1 RC,它基于我们三周前发布的 Update 1 CTP 构建。除了此处描述的 CTP 中引入的功能之外,候选版本还包括以下功能:
- 前往实施. 。许多人一直在等待的功能:只需右键单击接口或抽象方法并选择此命令即可导航到实现。
我认为这个功能不是内置在VS中,而是IIRC Resharper 有这个功能。
您可以对界面进行正则表达式搜索。
:(\ *[^},]+,)*\ *IMyInterfaceName
CTRL + SHIFT + F启动以下窗口:
我更喜欢“导航到...”选项。将光标放在函数调用上,尝试以下操作:
快捷键:
- Ctrl+,(Ctrl+逗号)
菜单:
- 编辑菜单
- 单击“导航至...”
好处:
- 不显示所有引用,例如“查找所有引用”
- 显示实现的“类型”,以便注意哪个是您的接口
使用Shift + F12显示所有引用,包括定义。
如果您使用resharper ALT + END 快捷方式可能有助于查找所有继承者。
我听说过(自己没有经验) doxygen 是.Net,就像javadoc一样的java。