分享方式:


Friend (Visual Basic)

指定一或多個宣告的程式設計元素,只能從包含其宣告的組件加以存取。

備註

在許多情況下,您希望整個組件都能使用類別及結構等程式設計元素,而非只有宣告這些元素的元件使用。 然而,您可能不希望讓組件外部的程式碼 (例如當應用程式為專屬時) 存取這些元素。 若您想以這種方式限制存取元素,可以使用 Friend 修飾元來宣告元素。

其他類別、結構和模組中的程式碼只要編譯至相同組件,即可存取該組件中的所有 Friend 元素。

Friend 存取通常是應用程式程式設計元素的慣用層級,而 Friend 則為介面、模組、類別或結構的預設存取層級。

您只能在模組、介面或命名空間層級使用 Friend。 因此,Friend 元素的宣告內容必須為來源檔案、命名空間、介面、類別或結構;宣告內容不得為程序。

注意

您也可以使用 Protected Friend 存取修飾詞,讓類別成員可從該類別內、從衍生類別,以及從定義類別的相同組件存取類別。 若要限制成員從類別內以及從相同組件中的衍生類別存取進行存取,您可以使用 Private Protected 存取修飾詞。

如需了解 Friend 的比較,以及其他存取修飾詞,請參閱 Visual Basic 中的存取層級

注意

您可以指定另一元件為 friend 組件,這樣做可允許其存取所有標記為 Friend 的類型與成員。 如需詳細資訊,請參閱 Friend Assemblies (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 Statement

Delegate 陳述式

Dim 陳述式

End 陳述式

Event 陳述式

Function 陳述式

Interface 陳述式

Module 陳述式

Property Statement

Structure 陳述式

Sub 陳述式

另請參閱