因为 String 实现了 IEnumerable<char>
,我期待在 Intellisense 中看到 Enumerable 扩展方法,例如,在
String s = "asdf";
s.
我期待看到 .Select<char>(...)
, .ToList<char>()
, ETC。
然后我惊讶地看到扩展方法 do 实际上在字符串类上工作,它们只是没有出现在 Intellisense 中。有人知道为什么吗?
这可能与 this 有关问题。
最佳答案
这是明确设计的。问题是,虽然 String 最明确地实现了 IEnumerable<T>
,大多数人不会那样想,或者更重要的是不会那样使用它。
String 有相当少的方法。最初我们没有过滤掉 String 的扩展方法,结果是很多负面反馈。通过正确的导入,有时方法的数量几乎增加了两倍。在显示所有扩展方法的情况下,人们通常无法在喧嚣中看到他们正在寻找的 String 方法。
String 是一个……简单的类型,最好这样看:)
仍然完全有可能在字符串上调用扩展方法。它很可能不会出现在智能感知中。
编辑:String 实际上有很多方法。但是因为它们中的许多都是重载,所以它们在智能感知中崩溃了。
关于c# - 为什么 VS 2008 不在 String 类的 Intellisense 中显示扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/345883/