共用方式為


Module 陳述式

宣告模組的名稱,並引入組成模組之變數、屬性、事件和程序的定義。

[ <attributelist> ] [ accessmodifier ]  Module name
    [ statements ]
End Module

組件

備註

Module 陳述式定義可以在命名空間中使用的參考型別 (Reference Type)。「模組」(有時稱為「標準模組」) 與類別 (Class) 類似,但有一些重要區別。每個模組都只可有一個執行個體,且不需要建立或指派給變數。模組不支援繼承 (Inheritance) 或實作介面。請注意,就這種意義而言,模組不是類別或結構的「型別」。不可將程式設計項目宣告成具有模組的資料型別。

只可以在命名空間層級使用 Module。這表示模組的「宣告內容」必須是原始程式檔或命名空間,且不可以是類別、結構、模組、介面、程序或區塊。不可在另一個模組內或任何型別內巢狀化模組。如需詳細資訊,請參閱宣告內容和預設存取層級 (Visual Basic)

模組的存留期 (Lifetime) 與程式相同。因為它的成員都是 Shared,所以它們的存留期也等於程式的存留期。

模組預設值為 Friend (Visual Basic) 存取。您可以使用存取修飾詞調整存取層級。如需詳細資訊,請參閱 Visual Basic 中的存取層級

模組的所有成員都是隱含 Shared。

類別和模組

這些項目有許多相似點,但也有一些重要的差異。

  • 用語 舊版的 Visual Basic 可以辨認兩種模組:「類別模組」(Class Module,.cls 檔案) 和「標準模組」(Standard Module,.bas 檔案)。目前的版本會分別呼叫這些「類別」和「模組」。

  • 共用成員 :您可以控制類別成員是共用成員或執行個體成員。

  • 物件導向 :類別為物件導向,但模組不是。所以只有類別可具現化 (Instantiated) 為物件。如需詳細資訊,請參閱 Visual Basic 中的物件和類別

規則

  • 修飾詞。 所有模組成員都是隱含 Shared (Visual Basic)。宣告成員時,不可使用 Shared 關鍵字,且不可改變任何成員的共用狀態。

  • 繼承 模組無法繼承非 Object 的其他任何型別,所有模組都是從該型別繼承。特別地是,某個模組不可繼承另一個模組。

    即使指定 Object,也不可在模組定義中使用 Inherits 陳述式

  • 預設屬性 您無法在模組中定義任何預設屬性。如需詳細資訊,請參閱Default (Visual Basic)

行為

  • 存取層級 :在模組內,可宣告每個成員都具有它自己的存取層級。模組成員預設值為 Public (Visual Basic) 存取,但不包含變數和常數,它們是預設值為 Private (Visual Basic) 存取。模組的存取比它的任何一個成員還受限制時,則所指定的模組存取層級的優先順序較高。

  • 範圍。 :模組是位在命名空間中的範圍內。

    每個模組成員的範圍是整個模組。請注意,所有成員接受「型別提升」,會讓它們的範圍提升成內含模組的命名空間。如需詳細資訊,請參閱 型別提升 (Visual Basic)

  • 限定性條件。 :在專案中可以有多個模組,且可以在兩個以上的模組中宣告同名的成員。然而,如果這類具有適當模組名稱之成員的任何參考是來自該模組的外部,則必須限定該參考。如需詳細資訊,請參閱 已宣告之項目的參考 (Visual Basic)

範例

Public Module thisModule
    Sub Main()
        Dim userName As String = InputBox("What is your name?")
        MsgBox("User name is" & userName)
    End Sub
    ' Insert variable, property, procedure, and event declarations.
End Module

請參閱

參考

Class 陳述式 (Visual Basic)

Namespace 陳述式

Structure 陳述式

Interface 陳述式 (Visual Basic)

Property 陳述式

概念

型別提升 (Visual Basic)