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

Posted

技术标签:

【中文标题】Visual Studio 的“自动解析”功能不适用于扩展方法 - 现在怎么办?【英文标题】:Visual Studio's "auto-resolve" feature doesn't work for extension methods - what now? 【发布时间】:2010-11-26 01:42:47 【问题描述】:

我喜欢 Visual Studio 中的“解决”功能。

典型场景:

    输入Debug 输入. 注意没有出现智能感知 右键单击 选择解决 选择using System.DiagnosticsSystem.Diagnostics.Debug

美丽。一直使用它。

扩展方法场景:

    输入var maxNumber = new int[] 1, 2, 3, 4 输入. 请注意,智能感知提供数组方法,但没有 LINQ 扩展方法 手动输入Max() 右击Max() 找不到解决方法 右击int[] 仍然没有找到解决办法

    不情愿地滚动到页面顶部并输入using System.Linq;*

    *假设你熟记于心,否则你会绞尽脑汁或者去查一下

实施思路:

如果要发明此功能,一个想法是当我键入 . 读取时出现的第一个智能感知项目 <extension methods...>,如果我单击该项目,它会显示一个解决列表,其中包含所有包含相关类的扩展方法的命名空间。

几个问题:

    此功能是否计划用于 Visual Studio 的未来版本? 对于查找特定类可能可用的扩展方法(和相应的命名空间)的任何变通方法/提示?

【问题讨论】:

ReSharper (jetbrains.com/resharper/download) 已经通过扩展方法做到了这一点。 有人知道 VS2012 是如何工作的吗? 【参考方案1】:

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

很遗憾,因为我也使用 Netbeans IDE for Java,并且“解析导入”对所有内容都完美无缺。

【讨论】:

Java 有扩展方法吗?就像 OP 所说的那样,它在典型使用中工作得很好,可能就像在 NetBeans IDE for Java 中一样完美。 java 没有扩展方法。除此之外,我还喜欢 Eclipse 的“组织导入”功能,并且导入包更快,因为它会自动导入包。除此之外,.NET 现在还有很多非常好的特性。我不想对它进行烦人的比较......

以上是关于Visual Studio 的“自动解析”功能不适用于扩展方法 - 现在怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 自动完成功能不适用于 html 页面上的 javascript/css

Git 命令不适用于 Visual Studio Code

MFC 是不是仅适用于 Visual Studio,不适用于 Visual C++ Express?

Visual Studio 2015 不适用于 Apache Cordova 工具

转到定义不适用于我的项目(vue 和 sass 文件)[visual-studio-code]

网络不适用于 Visual Studio 2015 for Console Application