Friend (Visual Basic)

1 つ以上の宣言されたプログラミング要素が、その宣言を含むアセンブリ内からのみアクセス可能であることを示します。

Remarks

多くの場合、クラスや構造体などのプログラミング要素は、それを宣言するコンポーネントだけでなく、アセンブリ全体で使用する必要があります。 ただし、アセンブリ外部のコードからアクセスできないようにすることもできます (アプリケーションが専用のものである場合など)。 この方法で要素へのアクセスを制限する場合は、Friend 修飾子を使用して宣言できます。

同じアセンブリにコンパイルされる他のクラス、構造体、およびモジュール内のコードは、そのアセンブリ内のすべての Friend 要素にアクセスできます。

Friend アクセスは、多くの場合はアプリケーションのプログラミング要素に優先されるレベルであり、Friend はインターフェイス、モジュール、クラス、または構造体の既定のアクセス レベルです。

Friend は、モジュール、インターフェイス、または名前空間レベルでのみ使用できます。 そのため、Friend 要素の宣言コンテキストはソース ファイル、名前空間、インターフェイス、モジュール、クラス、または構造体にする必要があり、プロシージャにすることはできません。

注意

また、Protected Friend アクセス修飾子を使用することもできます。これにより、クラス メンバーには、クラス内、派生クラス、およびクラスが定義されている同じアセンブリからアクセスできます。 クラス内および同じアセンブリ内の派生クラスからのメンバーへのアクセスを制限するには、Private Protected アクセス修飾子を使用します。

Friend とその他のアクセス修飾子の比較については、「Visual Basic でのアクセス レベル」を参照してください。

注意

別のアセンブリがフレンド アセンブリであることを指定できます。これにより、Friend としてマークされているすべての型とメンバーにアクセスできるようになります。 詳細については、Friend アセンブリに関するページを参照してください。

次のクラスは、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 修飾子は、次のコンテキストで使用できます。

Class ステートメント

Const ステートメント

Declare ステートメント

Delegate ステートメント

Dim ステートメント

Enum ステートメント

Event ステートメント

Function ステートメント

Interface ステートメント

Module ステートメント

Property ステートメント

Structure ステートメント

Sub ステートメント

関連項目