您可以藉由指定變數的 存取層級來控制變數的可用性。 存取層級會決定哪些程式代碼具有讀取或寫入變數的許可權。
成員變數 (定義於模組層級和任何程式外部)預設為公用存取,這表示任何可以看到它們的程式代碼都可以存取它們。 您可以藉由指定存取修飾詞來變更此項。
局部變數 (定義在程式內)名義上具有公用存取權,不過只有程式內的程式代碼可以存取它們。 您無法變更局部變數的存取層級,但您可以變更包含它的程式存取層級。
如需詳細資訊,請參閱 Visual Basic中的存取層級。
私人和公用存取
若要讓變數只能從其模組、類別或結構中存取
將 變數的 Dim 語句 放在模組、類別或結構內,但放在任何程式之外。
-
您可以從模組、類別或結構中的任何位置讀取或寫入變數,但不能從其外部讀取或寫入變數。
若要讓變數能被任何能看見它的程式碼存取
-或-
如果是局部變數,請將
Dim變數的語句放在程式內。請勿在
Public語句中包含Dim關鍵詞。您可以從程式內的任何位置讀取或寫入變數,但不能從程式外部讀取或寫入變數。
保護和朋友存取權限
您可以將變數的存取層級限制為其類別和任何衍生類別,或限制為其元件。 您也可以指定這些限制條件的聯集,允許從任何衍生類別或相同元件中任何其他位置進行程式碼存取。 您可以在相同的宣告中結合 Protected 和 Friend 關鍵詞來指定這個聯集。
若要讓變數只能從其類別和任何衍生類別中存取
將
Dim變數的語句放在類別內,但放在任何程式之外。-
您可以從 類別內的任何位置讀取或寫入變數,以及從衍生自它的任何類別內讀取或寫入變數,但不能從衍生鏈結中的任何類別之外讀取或寫入變數。
若要讓變數只能從相同的組件存取
將
Dim變數的語句放在模組、類別或結構內,但放在任何程式之外。-
您可以從模組、類別或結構中的任何位置,以及從相同元件中的任何程式代碼讀取或寫入變數,但不能從元件外部讀取或寫入變數。
範例
下列範例顯示具有Public、、Protected、、 FriendProtected Friend和 Private 存取層級的變數宣告。 請注意, Dim 當語句指定存取層級時,您不需要包含 Dim 關鍵詞。
Public Class classForEverybody
Protected Class classForMyHeirs
Friend stringForThisProject As String
Protected Friend stringForProjectAndHeirs As String
Private numberForMeOnly As Integer
.NET Framework 安全性
對變數的存取層級愈嚴格,惡意代碼可能不當使用的可能性就越小。