方法: 変数の可用性を制御する (Visual Basic)
変数の可用性を制御するには、そのアクセス レベルを指定します。 アクセス レベルによって、変数への読み取りまたは書き込みのアクセス許可を持つコードが決まります。
メンバー変数 (モジュール レベルのプロシージャの外部で定義される) は、既定でパブリック アクセスになります。これは、それらを参照できるすべてのコードで、それらにアクセスできることを意味します。 これを変更するには、アクセス修飾子を指定します。
ローカル変数 (プロシージャ内に定義) は、名目上パブリック アクセス権を持ちますが、それらのプロシージャ内のコードだけがそれらにアクセスできます。 ローカル変数のアクセス レベルを変更することはできませんが、それを含むプロシージャのアクセス レベルを変更することはできます。
詳しくは、「Visual Basic でのアクセス レベル」を参照してください。
プライベート アクセスとパブリック アクセス
変数をそのモジュール、クラス、または構造体内からのみアクセスできるようにするには
モジュール、クラス、または構造体の内部で、ただしプロシージャの外部に、変数の Dim ステートメントを配置します。
Dim
ステートメントに Private キーワードを含めます。変数の読み取りや書き込みは、モジュール、クラス、または構造体内のどこからでも行うことができますが、その外部から行うことはできません。
変数を参照できるすべてのコードから変数にアクセスできるようにするには
メンバー変数の場合、変数の
Dim
ステートメントをモジュール、クラス、または構造体の内部で、ただしプロシージャの外部に配置します。Dim
ステートメントに Public キーワードを含めます。アセンブリと相互運用するすべてのコードから変数の読み取りや書き込みができます。
\- または -
ローカル変数の場合は、プロシージャ内に変数の
Dim
ステートメントを配置します。Dim
ステートメントにはPublic
キーワードを含めないでください。変数の読み取りや書き込みは、プロシージャ内のどこからでも行うことができますが、その外部から行うことはできません。
Protected アクセスと Friend アクセス
変数のアクセス レベルは、そのクラス、任意の派生クラス、またはそのアセンブリに制限できます。 また、これらの制限の和集合を指定することもできます。これにより、任意の派生クラスまたは同じアセンブリ内の他の任意の場所のコードからアクセスできるようになります。 この和集合を指定するには、同じ宣言で Protected
キーワードと Friend
キーワードを組み合わせます。
そのクラスと任意の派生クラス内からのみ変数にアクセスできるようにするには
変数の
Dim
ステートメントをクラス内、ただしプロシージャの外部に配置します。Dim
ステートメントに Protected キーワードを含めます。変数の読み取りや書き込みは、クラス内のどこからでも、また、それから派生した任意のクラス内から行うことができますが、派生チェーン内のクラスの外部から行うことはできません。
同じアセンブリ内からのみ変数にアクセスできるようにするには
モジュール、クラス、または構造体の内部で、ただしプロシージャの外部に、変数の
Dim
ステートメントを配置します。Dim
ステートメントに Friend キーワードを含めます。変数の読み取りや書き込みは、モジュール、クラス、または構造体内のどこからでも、また同じアセンブリ内の任意のコードから行うことができますが、アセンブリの外部から行うことはできません。
例
次の例は、Public
、Protected
、Friend
、Protected 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 セキュリティ
変数のアクセス レベルの制限を強めるほど、悪意のあるコードによってそれが不正使用される可能性が低くなります。
関連項目
.NET