在Eclipse中,自动完成功能甚至适用于未使用的包或命名空间。这意味着如果我在一个包中有一个名为DuckWrapper的类,并且在没有导入包DuckWrapper的类中按ctrl + space,它将显示DuckWrapper并在必要时自动导入其包。
但是,Visual Studio不会在自动完成中显示它,除非我先将它添加到使用列表中。可以改变吗?
答案 0 :(得分:10)
当前版本的Visual Studio 2019中存在这种功能,但仍处于试验阶段。
如上图所示,看不到另一个项目中名称空间Test2中的实体Student
,但是如果单击IntelliSense窗口左下角的按钮,您将看到
在接受IntelliSense提供的Student选项后,所有需要的名称空间将自动添加到文件顶部(或在名称空间名称上方的所有现有using语句下面)。
您可以在以下位置打开/关闭此选项:
编辑:我嵌入了图像,而不只是超链接它们。
答案 1 :(得分:4)
在Visual Studio的标准安装中无法更改,因此您需要安装扩展程序才能添加该功能。提供此功能的一个常用扩展是JetBrain's ReSharper。以下是他们的文档中的引用。
使用Ctrl + Alt + Space调用导入符号完成(以前的类型名称完成)。与Symbol Completion(仅完成当前位置可访问的类型)不同,ReSharper显示与指定前缀匹配的所有类型,无论它们属于哪个命名空间,并在必要时自动添加相应的命名空间导入指令。在C#代码文件中,导入符号完成在使用扩展方法的点之后工作,并使用指令放置。
答案 2 :(得分:0)
您可以使用IntelliSense Extender插件。 对于Visual Studio 2017:
https://marketplace.visualstudio.com/items?itemName=Dreamescaper.IntelliSenseExtender
对于VS 2019:
https://marketplace.visualstudio.com/items?itemName=Dreamescaper.IntellisenseExtender2019
它包括解决方案中所有项目的类型以及所有引用包的类型。然后,从IntelliSense中选择一个未导入的类型将自动导入该类型。