共用方式為


HOW TO:建立屬性 (Visual Basic)

透過封入 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:宣告混合存取層級的屬性 (Visual Basic)

HOW TO:呼叫屬性程序 (Visual Basic)

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

HOW TO:將值置入屬性 (Visual Basic)

HOW TO:取得屬性值 (Visual Basic)

概念

Visual Basic 中的程序

屬性程序 (Visual Basic)

程序參數和引數 (Visual Basic)

Visual Basic 中屬性和變數的差別