宣告模組的名稱,並介紹模組所包含之變數、屬性、事件和程序的定義。
語法
[ <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