共用方式為


Set 語句 (Visual Basic)

Set宣告用來將值指派給屬性的屬性程式。

語法

[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]  
    [ statements ]  
End Set  

組件

attributelist
選擇性。 請參閱 屬性清單

accessmodifier
在這裡屬性中,最多有一個 GetSet 語句是選擇性的 。 可以是下列其中一項:

請參閱 Visual Basic 中的存取層級

value
選擇性。 包含屬性新值的參數。 如果未指定 ,即如果參數清單不存在或空白,則會定義名為 value 的隱含參數。 這個隱含參數的數據類型是宣告此 Set 語句之屬性的數據類型。

datatype
如果 value 存在 且 Option Strict 為 ,則為 On必要項。 如果未 value 提供,則無法存在。 參數的 value 數據類型。 指定的數據類型必須與宣告這個 Set 語句之屬性的數據類型相同。

statements
選擇性。 呼叫屬性程序時 Set 執行的一或多個語句。

End Set
必須的。 終止屬性程序的定義 Set

備註

除非屬性標示ReadOnly為 ,否則每個屬性都必須有Set屬性程式。 程式 Set 是用來設定 屬性的值。

當指派語句提供要儲存在 屬性中的值時,Visual Basic 會自動呼叫屬性 Set 的程式。

Visual Basic 會在屬性指派期間將參數傳遞至 Set 程式。 如果您未提供 的參數 Set,集成開發環境 (IDE) 會使用名為 value的隱含參數。 參數會保留要指派給 屬性的值。 您通常會將此值儲存在私用局部變數中,並在呼叫 Get 程式時傳回此值。

屬性宣告的主體只能包含 Property 語句與 語句之間的 屬性GetSetEnd Property程式。 它無法儲存這些程式以外的任何專案。 特別是,它無法儲存屬性的目前值。 您必須將此值儲存在 屬性之外,因為如果您將其儲存在任一屬性程式內,其他屬性程式就無法存取它。 一般方法是將值儲存在與 屬性相同層級宣告的 Private 變數中。 您必須在套用的 屬性內定義 Set 程式。

除非您在語句中使用 Set ,否則Setaccessmodifier此程式預設為其包含屬性的存取層級。

規則

  • 混合存取層級。 如果您要定義讀寫屬性,您可以選擇性地為 GetSet 程式指定不同的存取層級,但不能同時指定兩者。 如果您這樣做,程式存取層級必須比屬性的存取層級更嚴格。 例如,如果屬性宣告Friend為 ,您可以宣告程式Private,但不能Public宣告 Set

    如果您要定義 WriteOnly 屬性,則 Set 程式代表整個屬性。 您無法針對 宣告不同的存取層級 Set,因為這會為 屬性設定兩個存取層級。

行為

  • 從屬性過程傳回。 Set當程式返回呼叫端程式代碼時,執行會繼續遵循提供要儲存值的語句。

    Set 屬性程式可以使用 Return 語句Exit 語句傳回。

    Exit PropertyReturn 語句會立即結束屬性程式。 程式中的任何位置都可以顯示任意數目 的 Exit PropertyReturn 語句,而且您可以混合 Exit PropertyReturn 語句。

範例

下列範例會 Set 使用語句來設定 屬性的值。

Class propClass
    Private propVal As Integer
    Property Prop1() As Integer
        Get
            Return propVal
        End Get
        Set(ByVal value As Integer)
            propVal = value
        End Set
    End Property
End Class

另請參閱