如何建立屬性 (Visual Basic)

您會將屬性定義放在 Property 語句和 End Property 語句之間。 在此定義中,您會定義 Get 程式、 Set 程式或兩者。 所有屬性的程式代碼都位於這些程式內。

程式 Get 會擷取屬性的值,而程式會 Set 儲存值。 如果您想要讓 屬性具有讀取/寫入存取權,則必須定義這兩個程式。 若為唯寫屬性,您只會 Get定義,而針對唯寫屬性,則只會 Set定義 。

若要建立屬性

  1. 在任何屬性或程式之外,請使用 Property Statement,後面接著 End Property 語句。

  2. 如果屬性接受參數,請遵循 Property 關鍵詞並加上程式的名稱,然後以括弧括起參數清單。

  3. 遵循括號後添加 As 子句,以指定屬性值的資料類型。 您甚至可以為唯寫屬性指定數據類型。

  4. 視需要新增 Get 和 Set 程式。 請參閱下列指示。

建立擷取屬性值的 Get 程式

  1. 在 Property 和 End Property 語句之間,撰寫 Get 語句,後面接著 End Get 語句。 您不需要為 Get 程式定義任何參數。

  2. 放置程式代碼語句,以擷取 和 Get 語句之間的End Get屬性值。 除了產生和傳回屬性的值之外,此程式碼還可以包含其他計算和數據操作。

  3. Return使用語句,將 屬性的值傳回呼叫端程序代碼。

您必須為讀寫屬性和唯讀屬性編寫 Get 程序。 您不得為唯寫的屬性定義 Get 程序。

建立寫入屬性值的 Set 程式

  1. 在 Property 和 End Property 語句之間,撰寫 Set 語句,後面接著 End Set 語句。

  2. 在 Set 語句中,可選擇在 Set 關鍵詞後面加上括號內的參數列表。 如果參數清單不存在或空白,則會定義名為 Value 的隱含參數,其類型為屬性本身的類型。 如果參數清單不是空的,您可以適當地使用不同的名稱,但參數必須與屬性本身具有相同的數據類型。

  3. 將程式代碼語句放在和 Set 語句之間的 End Set 屬性中儲存值。 除了驗證和儲存屬性的值之外,此程式碼還可以包括其他計算和數據處理。

  4. 使用 value 參數來接受呼叫程式代碼所提供的值。 您可以直接將此值儲存在指派語句中,或在表達式中使用它來計算要儲存的內部值。

您必須為讀寫屬性和唯寫屬性撰寫 Set 程式。 您不得為唯讀屬性定義 Set 程序。

範例

下列範例會建立讀取/寫入屬性,將完整名稱儲存為兩個組成名稱、名字和姓氏。 當呼叫程式代碼讀取 fullName時,程式 Get 會結合這兩個組成名稱,並傳回完整名稱。 當呼叫程式代碼指派新的完整名稱時,程式 Set 會嘗試將它分成兩個組成名稱。 如果找不到空格,則會將其全部儲存為名字。

Dim firstName, lastName As String
Property fullName() As String
    Get
      If lastName = "" Then
          Return firstName
      Else
          Return firstName & " " & lastName
      End If

    End Get
    Set(ByVal Value As String)
        Dim space As Integer = Value.IndexOf(" ")
        If space < 0 Then
            firstName = Value
            lastName = ""
        Else
            firstName = Value.Substring(0, space)
            lastName = Value.Substring(space + 1)
        End If
    End Set
End Property

以下範例顯示對 fullName 的屬性程序的一般呼叫。 第一個呼叫會設定 屬性值,而第二個呼叫會擷取它。

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

另請參閱