在我的 VB.Net 2019 中,智能感知自动完成列表显示了
String
类型对象的许多不必要的方法。
这些方法都具有
<Extention>
属性,如所附屏幕截图所示。其中许多似乎与数据相关,例如 Any、All 和 Distinct。但其他字符串则不然,而且似乎是错误的,例如 Average、Count 和 Intersect。
对于此屏幕截图,我创建了一个测试项目,并从参考中删除了除
System
和 Microsoft.VisualBasic
之外的所有内容,但扩展方法仍然存在。
这些方法从何而来?
我了解我可以单击自动完成列表上的
Properties
和 Methods
按钮仅显示这些按钮。但我也想了解我自己的教育的扩展方法来自哪里。
您看到这些扩展方法是因为
String
实现了 IEnumerable(Of Char)
并且 System.Linq
命名空间会作为项目属性的一部分自动导入。它们是任何实现 IEnumerable(Of T)
的标准 Linq 扩展方法。
您可以通过项目属性中的“引用”层控制自动导入(在原始项目和 SDK 样式项目中位于同一位置)。我相信
System.Linq
是默认值之一。