如何:宣告混合存取層級的屬性 (Visual Basic)

如果您希望屬性上的 GetSet 程序具有不同的存取層級,您可以在 Property 陳述式中使用較寬鬆的層級,並在 GetSet 陳述式中使用更嚴格的層級。 當您希望程式碼的某些部分能夠取得屬性的值,而程式碼的某些其他部分能夠變更該值時,您可以在屬性上使用混合存取層級。

如需存取層級的詳細資訊,請參閱 Visual Basic 中的存取層級

宣告混合存取層級的屬性

  1. 以正常方式宣告屬性,並在 Property 陳述式中指定較不嚴格的存取層級 (例如 Public)。

  2. 宣告 GetSet 程序,以指定更嚴格的存取層級 (例如 Friend)。

  3. 請勿在其他屬性程序上指定存取層級。 它會假定 Property 陳述式中宣告的存取層級。 您可以僅限存取其中一個屬性程序。

    Public Class employee
        Private salaryValue As Double
        Protected Property salary() As Double
            Get
                Return salaryValue
            End Get
            Private Set(ByVal value As Double)
                salaryValue = value
            End Set
        End Property
    End Class
    

    在上述範例中,Get 程序具有與屬性本身相同的 Protected 存取權,而 Set 程序則具有 Private 存取權。 衍生自 employee 的類別可以讀取 salary 值,但只有 employee 類別可以設定該值。

另請參閱