如何:控制變數的可用性 (Visual Basic)

您可透過指定存取層級來控制變數的可用性。 存取層級會決定哪些程式碼具有讀取或寫入該變數的權限。

  • 成員變數 (在模組層級和程序之外定義) 預設為公用存取,意即可看到這些變數的程式碼皆可加以存取。 您可透過指定存取修飾詞以進行變更。

  • 區域變數 (在程序內定義) 通常有公用存取,不過僅程序內的程式碼可加以存取。 您無法變更區域變數的存取層級,但您可變更包含該區域變數的程序存取層級。

如需詳細資訊,請參閱 Visual Basic 中的存取層級

私人和公用存取

若要讓變數僅可從其模組、類別或結構存取

  1. 將變數的 Dim 陳述式放在模組、類別或結構內,但放在任何程序之外。

  2. Dim 陳述式中包含 Private 關鍵字。

    您可以從模組、類別或結構內的任何位置讀取或寫入變數,但不能從其之外讀取或寫入。

若要讓變數可從可看到該變數的程式碼存取

  1. 針對成員變數,將變數的 Dim 陳述式放在模組、類別或結構內,但放在任何程序之外。

  2. Dim 陳述式中包含 Public 關鍵字。

    您可從與組件相互操作的程式碼讀取或寫入變數。

-或-

  1. 針對區域變數,將變數的 Dim 陳述式放在程序內。

  2. 不要在 Dim 陳述式中包含 Public 關鍵字。

    您可從程序內的任何位置讀取或寫入變數,但不能從程序之外讀取或寫入。

Protected 和 Friend 存取

您可將變數的存取層級限制為其類別和任何衍生類別,或限制為其組件。 您也可指定這些限制的聯合,其允許從任何衍生類別或相同組件任何位置中的程式碼存取。 您可透過在相同宣告中結合 ProtectedFriend 關鍵字來指定此聯合。

若要讓變數僅從其類別和任何衍生類別中存取

  1. 將變數的 Dim 陳述式放在類別內,而放在任何程序之外。

  2. Dim 陳述式中包含 Protected 關鍵字。

    您可從類別內的任何位置及從衍生自其中類別內讀取或寫入變數,但不能從衍生鏈中任何類別之外讀取或寫入。

若要讓變數僅可從相同組件內存取

  1. 將變數的 Dim 陳述式放在模組、類別或結構內,但放在任何程序之外。

  2. Dim 陳述式中包含 Friend 關鍵字。

    您可從模組、類別或結構中的任何位置及相同組件中的任何程式碼讀取或寫入變數,但不能從組件之外讀取或寫入。

範例

下列範例顯示具有 PublicProtectedFriendProtected FriendPrivate 存取層級的變數宣告。 請注意,當 Dim 陳述式指定存取層級時,您不需要包含 Dim 關鍵字。

Public Class classForEverybody  
Protected Class classForMyHeirs  
Friend stringForThisProject As String  
Protected Friend stringForProjectAndHeirs As String  
Private numberForMeOnly As Integer  

.NET Framework 安全性

變數存取層級的限制愈多,惡意程式碼可能會不當使用的機會愈小。

另請參閱