擴充套件方法

擴充套件方法是向 Type 新增功能的方法(SubFunction)(可以是引用型別或值型別)。這些型別可能由你擁有也可能不歸你所有。

它們可能與也可能不在與它們要修改的型別相同的程式集中。你可以通過在自己的名稱空間中隔離它們來允許選擇加入擴充套件方法。或者如果你願意,可以通過將它們包含在與它們修改的型別相同的名稱空間中來使它們始終可用(假設所有的程式集引用都已到位且正確)。有關擴充套件方法的選擇加入方式的一個很好的示例,請參閱 GitHub 上的 Entity Framework Core 1.0 專案。

VB 中的擴充套件方法有一些要求:

  • 擴充套件方法只能在模組中宣告。
  • 必須使用 Extension() 屬性修飾擴充套件方法。
  • ExtensionAttribute 名稱空間必須在你的模組中可用。
    Imports System.Runtime.CompilerServices
  • 方法的第一個引數必須是此方法將附加到的型別。
  • 該方法的第一個引數將表示此方法操作的例項。 (相當於 Me,如果這是一個真實的例項方法)。
  • 如果未在例項化物件上呼叫所有引數,則可以將擴充套件方法稱為常規方法。