扩展方法
扩展方法是向 Type 添加功能的方法(Sub
或 Function
)(可以是引用类型或值类型)。这些类型可能由你拥有也可能不归你所有。
它们可能与也可能不在与它们要修改的类型相同的程序集中。你可以通过在自己的命名空间中隔离它们来允许选择加入扩展方法。或者如果你愿意,可以通过将它们包含在与它们修改的类型相同的命名空间中来使它们始终可用(假设所有的程序集引用都已到位且正确)。有关扩展方法的选择加入方式的一个很好的示例,请参阅 GitHub 上的 Entity Framework Core 1.0 项目。
VB 中的扩展方法有一些要求:
- 扩展方法只能在模块中声明。
- 必须使用
Extension()
属性修饰扩展方法。 - ExtensionAttribute 命名空间必须在你的模块中可用。
Imports System.Runtime.CompilerServices
- 方法的第一个参数必须是此方法将附加到的类型。
- 该方法的第一个参数将表示此方法操作的实例。 (相当于
Me
,如果这是一个真实的实例方法)。 - 如果未在实例化对象上调用所有参数,则可以将扩展方法称为常规方法。