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.Diagnostics
或System.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
MFC 是不是仅适用于 Visual Studio,不适用于 Visual C++ Express?
Visual Studio 2015 不适用于 Apache Cordova 工具