Visual Studio的"自动解析"功能不适用于扩展方法 - 现在怎么办?

dev*_*xer 9 intellisense extension-methods namespaces visual-studio

我喜欢visual studio中的"Resolve"功能.

典型场景:

  1. 输入 Debug
  2. 类型 .
  3. 请注意,不会出现智能感知
  4. 右键点击
  5. 选择"解决"
  6. 选择using System.DiagnosticsSystem.Diagnostics.Debug

美丽.一直使用它.

扩展方法场景:

  1. 输入 var maxNumber = new int[] {1, 2, 3, 4}
  2. 类型 .
  3. 请注意,intellisense引出了数组方法,但没有LINQ扩展方法
  4. 手动输入 Max()
  5. 右键点击 Max()
  6. 无法找到解决方案
  7. 右键单击 int[]
  8. 仍然没有找到解决方案
  9. 不好意思地滚动到页面顶部并输入using System.Linq;*

    *假设你是用心去理解它,否则会绞尽脑汁或者试着去查找它

实施理念:

如果要发明这个功能,一个想法就是当我键入.读取时出现的第一个intellisense项目,<extension methods...>如果我点击该项目,它会显示包含该类的扩展方法的所有名称空间的Resolve列表.题.

情侣问题:

  1. 此功能是否适用于Visual Studio的未来版本?
  2. 有关查找可能适用于特定类的扩展方法(以及相应的命名空间)的任何变通方法/技巧?

小智 1

我真的很讨厌必须“只知道”使用什么名称空间来支持任何给定的类。我的意思是,有数千个。谁知道您需要什么命名空间?没有任何命名约定可以用作线索。

很遗憾,因为我还使用 Netbeans IDE for Java,并且“解析导入”对于所有内容都可以完美地工作。

  • Java 有扩展方法吗?正如 OP 所说,它在典型用法中工作得很好,可能就像在 NetBeans IDE for Java 中一样完美。 (4认同)