【发布时间】:2017-05-28 21:21:43
【问题描述】:
复制:
- 开始VS 2015
- 创建一个新的 VB.NET 控制台应用程序
-
在 Sub Main() 中开始输入:
Dim s = {"a", "b"} s.Se 发现 Visual Studio 提供了
Select扩展方法,这很有帮助:
- 点击
(自动完成并开始为方法提供参数。
实际结果:s.Select(Of …)()
想要的结果:s.Select()
我不想要 (Of …) 部分,因为在 99% 的情况下,如果没有它,类型推断工作得非常好,而且它会弄乱我的代码。有没有办法告诉自动完成不要这样做?
注意:显然,这个“问题”只影响Enumerable.Select(Of T) 和Enumerable.SelectMany(Of T) 扩展方法。 Enumerable.Cast(Of T) 和自定义 Select(Of T) 扩展方法可以正常工作(没有 (Of …))。
【问题讨论】:
-
如果你按
TAB而不是(VS 自动完成到s.Select。然后键入(并从参数开始。 -
我不喜欢这样输入,特别是考虑到 2015 年之前的所有 VS 都不添加
Of。 -
从插入符号在
Select(Of ...)(之后的事实来看,而不是留在Of之后的第一个括号之间,我相信这是一个错误,它插入了自动完成列表元素的Text进入编辑器而不是Value。它确实使输入代码烦人到了愤怒的程度。 -
@GSerg:我同意,它看起来像一个错误。我创建了一个 MS 连接条目:connect.microsoft.com/VisualStudio/feedback/details/3118772
-
对我来说,在自动完成列表中的所有通用方法中,只有
Cast和OfType可以正常工作,其他所有方法都使用Of。顺便说一句,这两个是唯一在列表右侧显示正确帮助工具提示的工具,其他显示空工具提示(也可以在您的屏幕截图中看到,列表右上角的小凸起)。跨度>