共用方式為


如何建立屬性 (Visual Basic)

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

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

若要建立屬性

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

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

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

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

建立擷取屬性值的 Get 程式

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

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

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

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

建立寫入屬性值的 Set 程式

  1. PropertyEnd 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)

另請參閱