Friend (Visual Basic)
1 つまたは複数の宣言されたプログラミング要素が、その宣言を含むアセンブリからのみアクセス可能かどうかを示します。
解説
次のクラスでは、Friend 修飾子を使用すると、同じアセンブリ内の他のプログラミング要素が特定のメンバーにアクセスできるようになります。
Class CustomerInfo
Private p_CustomerID As Integer
Public ReadOnly Property CustomerID() As Integer
Get
Return p_CustomerID
End Get
End Property
' Allow friend access to the empty constructor.
Friend Sub New()
End Sub
' Require that a customer identifier be specified for the public constructor.
Public Sub New(ByVal customerID As Integer)
p_CustomerID = customerID
End Sub
' Allow friend programming elements to set the customer identifier.
Friend Sub SetCustomerID(ByVal customerID As Integer)
p_CustomerID = customerID
End Sub
End Class
規則
宣言コンテキスト。 Friend は、モジュール レベル、インターフェイス レベル、または名前空間レベルでのみ使用できます。 つまり、Friend の宣言コンテキストは、ソース ファイル、名前空間、インターフェイス、モジュール、クラス、構造体のいずれかである必要があり、プロシージャでは宣言できません。
修飾子の結合。 Friend 修飾子は、同じ宣言内で Protected (Visual Basic) 修飾子と組み合わせて使用できます。 この組み合わせを使うと、宣言される要素にはフレンド アクセスとプロテクト アクセスの両方が設定され、同じアセンブリ、要素自体のクラス、およびすべての派生クラスから要素にアクセスできます。 Protected Friend は、クラスのメンバーでのみ指定できます。
Behavior
アクセス レベル。 宣言コンテキスト内のすべてのコードは、自らの要素にアクセスできます。 同じアセンブリにコンパイルされる他のクラス、構造体、モジュール内のコードは、そのアセンブリ内のすべての Friend 要素にアクセスできます。
フレンド アクセスは、プロテクト アクセスのスーパーセットでもサブセットでもありません。
アクセス修飾子。 アクセス レベルを指定するキーワードは、アクセス修飾子と呼ばれます。 アクセス修飾子の比較については、「Visual Basic でのアクセス レベル」を参照してください。
フレンドを使用する状況
多くの場合、クラスや構造体のようなプログラミング要素は、それを宣言したコンポーネント内だけでなく、アセンブリ全体で使用できるようにします。 しかし、プロプライエタリ アプリケーションである場合など、アセンブリ外部のコードからはアクセスできないようにする必要がある場合もあります。 このような形で要素へのアクセスを制限するには、要素を Friend で宣言します。
フレンド アクセスは、アプリケーションのプログラミング要素に望ましいレベルとして多く利用されます。 特に宣言しない場合、インターフェイス、モジュール、クラス、構造体の既定のアクセス レベルは Friend です。
Friend 修飾子は、次の場合に使用できます。