共用方式為


Module 語句

宣告模組的名稱,並介紹模組所包含之變數、屬性、事件和程序的定義。

語法

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

組件

attributelist
選擇性。 請參閱 屬性清單

accessmodifier
選擇性。 可以是下列其中一項:

請參閱 Visual Basic 中的存取層級

name
必須的。 此模組的名稱。 請參閱 宣告的項目名稱

statements
選擇性。 定義此模組之變數、屬性、事件、程式和巢狀類型的語句。

End Module
Module終止定義。

備註

Module語句會定義其命名空間中可用的參考型別。 模組(有時稱為標準模組)類似於類別,但有一些重要的區別。 每個模組只有一個實例,不需要建立或指派給變數。 模組不支援繼承或實作介面。 請注意,模組不是類別或結構的 別,您無法宣告程式設計專案具有模組的數據類型。

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

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

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

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

類別和模組

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

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

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

  • 物件方向。 類別是面向物件,但模組不是。 因此,只有類別可以具現化為物件。 如需詳細資訊,請參閱 物件和類別

規則

  • 修飾 符。 所有模組成員都會隱含 共用。 宣告成員時,您無法使用 Shared 關鍵詞,而且無法改變任何成員的共享狀態。

  • 繼承: 模組無法繼承自 以外的 Object任何類型,而所有模組都繼承自該類型。 特別是,某個模組無法繼承自另一個模組。

    您無法在模組定義中使用 Inherits 語句 ,甚至不能指定 Object

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

行為

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

  • 範圍。 模組在其命名空間中處於範圍。

    每個模組成員的範圍都是整個模組。 請注意,所有成員都會經歷 類型升級,這會導致其範圍升級至包含模組的命名空間。 如需詳細資訊,請參閱 類型升級

  • 資格。 您可以在專案中有多個模組,而且您可以在兩個或多個模組中宣告具有相同名稱的成員。 不過,如果參考來自該模組外部,您必須使用適當的模組名稱限定這類成員的任何參考。 如需詳細資訊,請參閱 宣告項目的參考

範例

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

另請參閱