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

时间:2008-12-06 04:04:56

标签: c# visual-studio-2008 string extension-methods intellisense

由于String实现了IEnumerable<char>,我希望在Intellisense中看到Enumerable扩展方法,例如,在

中键入句点时
String s = "asdf";
s.

我原本希望看到.Select<char>(...).ToList<char>()等。 然后我很惊讶地看到扩展方法实际上对字符串类起作用,它们只是没有出现在Intellisense中。有人知道为什么吗? 这可能与this问题有关。

3 个答案:

答案 0 :(得分:15)

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

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

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

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:-2)

应该。

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

然后它应该在那里。