共用方式為


Class 語句 (Visual Basic)

宣告類別的名稱,並導入類別所包含之變數、屬性、事件和程式的定義。

語法

[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _  
Class name [ ( Of typelist ) ]  
    [ Inherits classname ]  
    [ Implements interfacenames ]  
    [ statements ]  
End Class  

組件

術語 定義
attributelist 選擇性。 請參閱 屬性清單
accessmodifier 選擇性。 可以是下列其中一項:

- 公共
- 保護
- 朋友
- 私人
- 受保護的Friend
- 私人受保護

請參閱 Visual Basic 中的存取層級
Shadows 選擇性。 請參閱 陰影
MustInherit 選擇性。 請參閱 MustInherit
NotInheritable 選擇性。 請參閱 NotInheritable
Partial 選擇性。 表示類別的部分定義。 請參閱 部分
name 必須的。 這個類別的名稱。 請參閱 宣告的項目名稱
Of 選擇性。 指定這是泛型類別。
typelist 如果您使用 Of 關鍵詞,則為必要項。 這個類別的類型參數清單。 請參閱 類型清單
Inherits 選擇性。 表示這個類別繼承另一個類別的成員。 請參閱 Inherits 語句
classname 如果您使用語句, Inherits 則為必要項。 這個類別衍生的來源類別名稱。
Implements 選擇性。 表示這個類別會實作一或多個介面的成員。 請參閱 Implements 語句
interfacenames 如果您使用語句, Implements 則為必要項。 這個類別所實作的介面名稱。
statements 選擇性。 定義這個類別成員的語句。
End Class 必須的。 Class終止定義。

備註

Class語句會定義新的數據類型。 類別是面向物件程序設計的基本建置組塊(OOP)。 如需詳細資訊,請參閱 物件和類別

您只能在命名空間或模組層級使用 Class 。 這表示類別的 宣告內容 必須是來源檔案、命名空間、類別、結構、模組或介面,而且不能是程式或區塊。 如需詳細資訊,請參閱 宣告內容和預設存取層級

類別的每個實例都有與所有其他實例無關的存留期。 這個存留期是從 New Operator 子句或這類 CreateObject函式建立時開始的。 當指向 實例的所有變數都設定為 Nothing 或其他類別的實例時,它會結束。

類別預設為 Friend 存取。 您可以使用存取修飾詞來調整其存取層級。 如需詳細資訊,請參閱 Visual Basic中的存取層級

規則

  • 嵌套。 您可以在另一個類別內定義一個類別。 外部類別稱為 包含類別,而內部類別稱為 巢狀類別

  • 繼承: 如果類別使用 Inherits 語句,則您只能指定一個基類或介面。 類別無法繼承自一個以上的專案。

    類別無法繼承自具有更嚴格的存取層級的另一個類別。 例如,類別 Public 無法繼承自 類別 Friend

    類別無法繼承自其內巢狀類別。

  • 實作。 如果類別使用 Implements 語句,則必須實作您在 中指定的 interfacenames每個介面所定義的每個成員。 這是基類成員的重新實作例外狀況。 如需詳細資訊,請參閱 Implements 中的。

  • Default 屬性。 類別最多可以指定一個屬性做為其 預設屬性。 如需詳細資訊,請參閱 預設值

行為

  • 存取層級。 在類別中,您可以使用自己的存取層級來宣告每個成員。 類別成員預設為 [公用 存取],但變數和常數除外,預設為 Private 存取。 當類別具有比其中一個成員更受限制的存取時,類別存取層級會優先。

  • 範圍。 類別在其包含命名空間、類別、結構或模組的範圍內。

    每個類別成員的範圍都是整個類別。

    一生 Visual Basic 不支持靜態類別。 靜態類別的功能對等功能是由模組提供。 如需詳細資訊,請參閱 Module語句

    類別成員的存留期取決於其宣告方式和位置。 如需詳細資訊,請參閱 Visual Basic中的存留期

  • 資格。 類別外部的程式代碼必須以該類別的名稱限定成員的名稱。

    如果巢狀類別內的程式代碼對程式設計專案進行不合格的參考,Visual Basic 會先在巢狀類別中搜尋元素,然後在其包含類別中搜尋元素,依此搜尋到最外層的包含專案。

類別和模組

這些元素有許多相似之處,但也有一些重要的差異。

  • 術語。 舊版 Visual Basic 可辨識兩種類型的模組: 類別模組 (.cls 檔案)和 標準模組 (.bas 檔案)。 目前的版本會分別呼叫這些 類別模組

  • 共享成員。 您可以控制類別的成員是共用或實例成員。

  • 物件方向。 類別是面向物件,但模組不是。 您可以建立類別的一或多個實例。 如需詳細資訊,請參閱 物件和類別

範例

下列範例會使用 Class 語句來定義類別和數個成員。

Class BankAccount
    Shared interestRate As Decimal
    Private accountBalance As Decimal
    Public holdOnAccount As Boolean = False

    Public ReadOnly Property Balance() As Decimal
        Get
            Return accountBalance
        End Get
    End Property

    Public Sub PostInterest()
        accountBalance = accountBalance * (1 + interestRate)
    End Sub

    Public Sub PostDeposit(ByVal amountIn As Decimal)
        accountBalance = accountBalance + amountIn
    End Sub

    Public Sub PostWithdrawal(ByVal amountOut As Decimal)
        accountBalance = accountBalance - amountOut
    End Sub
End Class

另請參閱