Intellisense是否能够像Eclipse一样搜索未导入命名空间中的类?

15
在Eclipse中,即使是未使用的包或命名空间,也可以使用自动完成功能。这意味着,如果我有一个名为DuckWrapper的类,在一个没有导入DuckWrapper包的类中按下ctrl+space,它将显示DuckWrapper并在需要时自动导入其包。
然而,Visual Studio在自动补全中不会显示它,除非我首先将其添加到using列表中。
这个能改变吗?
3个回答

16

这种功能在当前的Visual Studio 2019版本中存在,但仍处于实验阶段。

IntelliSense without this feature on

如上图所示,您无法从另一个项目中的命名空间Test2中看到实体{{Student}},但如果您单击 IntelliSense 窗口左下角的按钮,则会看到此内容。

IntelliSense with this feature on

当接受IntelliSense给出的“学生选项”时,所有需要的命名空间将自动添加在您的文件顶部(或在命名空间名称上方的所有现有using语句下方)。

您可以在以下位置打开/关闭此选项:

  • 工具
  • 选项
  • 文本编辑器
  • C#
  • 智能感知
  • 勾选/取消勾选最后一个选项“显示未导入命名空间中的项(实验性)”

编辑:我嵌入了图片而不是仅链接它们。


嘿,也许可以在这里嵌入图片,这样人们就可以在答案中看到它们,而不是被带到一些他们不知道的其他位置。 - William Patton
1
@williampatton 我不认为我可以发布图片,除非我有一定的声望,但遗憾的是我没有。这些图片位于Stack Overflow的imgur帐户上,任何人都应该可以打开它们,这不应该成为问题。或者,这里是一个Google Drive链接。 - Dacha
啊,@Dacha说得有道理,我应该意识到图像上传权限还没有被授予。我可以确认离线位置是安全的。感谢您为这个问题添加了额外的答案 :) 编辑:已点赞,现在您应该有足够的声望来嵌入图片了。 - William Patton
1
@WilliamPatton 谢谢你的帮助,我现在已经嵌入了图片 :) 干杯 - Dacha
Visual Studio 2022 - 仍然无法正常工作。 - AgentFire

9

2
这在 Visual Studio 的标准安装中无法更改,因此您需要安装扩展程序以添加此功能。一个常用的提供此功能的扩展程序是 JetBrain's ReSharper。以下是他们文档中的一句话:

导入符号完成(以前称为类型名称完成)使用 Ctrl+Alt+Space 调用。与仅完成当前位置可访问的类型的符号完成不同,ReSharper 显示与指定前缀匹配的所有类型,而不管它们属于哪个命名空间,并在必要时自动添加适当的命名空间导入指令。在 C# 代码文件中,在扩展方法后使用 Import Symbol Completion 并放置必要的 using 指令。

Import Symbol Completion


4
谢谢,我有点担心。很奇怪这样一个正常的功能没有在原版的VS中出现。 - Uri
1
ReSharper非常沉重,它是一个面向初学者的教育工具。 - Ivan G.
已过时,建议使用VS2019。请参考下面的答案。 - blenderfreaky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接