Friend (Visual Basic)

指定一個或多個宣告的程式設計項目只能從包含其宣告的組件中進行存取。

備註

下列類別會使用 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) 修飾詞。 此組合授與在宣告項目上的 Friend 及 Protected 存取,所以可從相同組件、自己的類別,以及衍生類別的任何位置,存取宣告項目。 您只能在類別成員上指定 Protected Friend。

行為

  • 存取層級宣告內容中的所有程式碼都可存取其項目。 編譯成相同組件之其他類別、結構和模組的程式碼,都可以存取該組件中的所有 Friend 項目。

    Friend 存取不是 Protected 存取的超集或子集。

  • **存取修飾詞。**表示存取層級的關鍵字稱為「存取修飾詞」(Access Modifier)。 如需存取修飾詞的比較,請參閱 Visual Basic 中的存取層級

使用 Friend 的時機

在許多情況下,您可能想要整個組件都可使用程式設計項目 (例如類別和結構),而不只是由宣告它們的元件使用。 然而,您可能不想讓組件外部的程式碼存取它們 (例如,應用程式含有敏感的資訊時)。 若要限制使用這種方式來存取項目,可使用 Friend 宣告它。

Friend 存取通常是應用程式之程式設計項目的慣用層級。 請注意,如果您未宣告介面、模組、類別或結構的存取層級,這個存取層級便預設值為 Friend。

Friend 修飾詞可用於以下內容中:

Class 陳述式

Const 陳述式

Declare 陳述式

Delegate 陳述式

Dim 陳述式

Enum 陳述式

Event 陳述式

Function 陳述式

Interface 陳述式

Module Statement

Property 陳述式

Structure 陳述式

Sub 陳述式

請參閱

參考

Public (Visual Basic)

Protected (Visual Basic)

Private (Visual Basic)

概念

Visual Basic 中的存取層級

Visual Basic 中的程序

其他資源

結構 (Visual Basic)

Visual Basic 中的物件和類別