为什么VS 2008不在Intellisense中为String类显示扩展方法

由于String实现了IEnumerable ,我期待在Intellisense中看到Enumerable扩展方法,例如,在输入句点时

 String s = "asdf"; s. 

我期待看到.Select(...) .ToList()等等。然后我很惊讶看到扩展方法确实在字符串类上工作,它们只是没有出现在Intellisense中。 有人知道为什么吗? 这可能与这个问题有关。

这是通过明确的设计。 问题是尽管String绝对实现了IEnumerable ,但大多数人并没有想到它,或者更重要的是以这种方式使用它。

String具有相当少的方法。 最初我们没有过滤String的扩展方法,结果是很多负面反馈。 使用正确的导入,它有时几乎使方法数量增加了两倍。 显示所有扩展方法后,人们常常看不到他们在噪声中寻找的String方法。

字符串是……简单类型,最好以这种方式查看:)

完全可以在字符串上调用扩展方法。 它很可能不会出现在intellisense中。

编辑:字符串实际上有很多方法。 但由于它们中的许多都是超载,它们在智能感知中崩溃了。

有关信息,这在VS2010中已经发生了变化(至少在beta 2中)。 看起来这个过滤已被删除(可能是它引起了太多混乱),现在这些方法与扩展方法字形一起可见。

这应该。

 For example you can write it public static string myExtensionMethod(this String yuppi){ } 

那应该是在那里。