Share via


HOW TO:建立屬性

更新:2007 年 11 月

透過封入 Property 陳述式 (Statement) 與 End Property 陳述式來定義屬性。在這個定義內,可定義 Get 程序和 (或) Set 程序。所有屬性程式碼都落在這些程序內。

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

若要建立屬性

  1. 在任何屬性或程序外部,使用後面緊接 End Property 陳述式的 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 陳述式 (Visual Basic),後面緊接 End Set 陳述式。

  2. 在 Set 陳述式中,請在 Set 關鍵字後面緊接著以括弧括住的參數清單。這個參數清單至少必須包含呼叫程式碼所傳遞之值的值參數。這個值參數的預設名稱是 Value,但可視情況使用不同的名稱。值參數的資料型別必須與屬性本身相同。

  3. 放置程式碼陳述式,以將值儲存在 Set 與 End Set 陳述式間的屬性中。除了驗證和儲存屬性值外,這個程式碼可包含其他計算和資料操作。

  4. 使用值參數來接受 (Accept) 呼叫程式碼所提供的值。您可直接將這個值儲存在指派陳述式 (Assignment Statement) 中,或將它用於運算式中,以計算所要儲存的內部值。

對於讀寫屬性和唯寫屬性,您必須撰寫 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)

請參閱

工作

HOW TO:宣告混合存取層級的屬性

HOW TO:呼叫屬性程序

HOW TO:在 Visual Basic 中宣告及呼叫預設屬性

HOW TO:將值置入屬性

HOW TO:取得屬性值

概念

Visual Basic 中的程序

Property 程序

程序參數和引數

Visual Basic 中屬性和變數的差別