次の方法で共有


Set ステートメント (Visual Basic)

プロパティに値を割り当てるために使用する Set プロパティ プロシージャを宣言します。

構文

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

部品

attributelist
任意。 「属性リスト」を参照してください。

accessmodifier
このプロパティの Get ステートメントと Set ステートメントの 1 つ以上では省略可能です。 次のいずれかを指定できます。

Access levels in Visual Basic」を参照してください。

value
任意。 プロパティの新しい値を含むパラメーター。 指定されていない場合 (つまり、パラメーター リストが存在しないか空の場合)、 value という名前の暗黙的なパラメーターが定義されます。 この暗黙的パラメーターのデータ型は、この Set ステートメントが宣言されているプロパティのデータ型です。

datatype
valueが存在し、Option StrictOn場合は必須です。 valueが指定されていない場合は存在できません。 value パラメーターのデータ型。 指定するデータ型は、この Set ステートメントが宣言されているプロパティのデータ型と同じである必要があります。

statements
任意。 Set プロパティ プロシージャが呼び出されたときに実行される 1 つ以上のステートメント。

End Set
必須。 Set プロパティ プロシージャの定義を終了します。

注釈

プロパティがReadOnlyマークされていない限り、すべてのプロパティにSetプロパティ プロシージャが必要です。 Set プロシージャは、プロパティの値を設定するために使用されます。

割り当てステートメントがプロパティに格納する値を提供すると、Visual Basic はプロパティの Set プロシージャを自動的に呼び出します。

Visual Basic は、プロパティの割り当て時にパラメーターを Set プロシージャに渡します。 Setのパラメーターを指定しない場合、統合開発環境 (IDE) では、valueという名前の暗黙的なパラメーターが使用されます。 パラメーターは、プロパティに割り当てられる値を保持します。 通常、この値はプライベート ローカル変数に格納し、 Get プロシージャが呼び出されるたびに返します。

プロパティ宣言の本文には、Property ステートメントEnd Property ステートメントの間のプロパティのGetプロシージャとSet プロシージャのみを含めることができます。 これらのプロシージャ以外のプロシージャは格納できません。 特に、プロパティの現在の値を格納することはできません。 この値はプロパティの外部に格納する必要があります。これは、いずれかのプロパティ プロシージャ内に格納した場合、他のプロパティ プロシージャはプロパティ プロシージャにアクセスできないためです。 通常の方法では、プロパティと同じレベルで宣言された Private 変数に値を格納します。 Setプロシージャを適用するプロパティ内で定義する必要があります。

Set プロシージャは、Set ステートメントでaccessmodifierを使用しない限り、その包含プロパティのアクセス レベルに既定で設定されます。

準則

  • 混合アクセス レベル。 読み取り/書き込みプロパティを定義する場合は、必要に応じて、 Get または Set プロシージャに別のアクセス レベルを指定できますが、両方を指定することはできません。 これを行う場合、プロシージャのアクセス レベルは、プロパティのアクセス レベルよりも制限が厳しい必要があります。 たとえば、プロパティが Friend宣言されている場合、 Set プロシージャ Private宣言できますが、 Publicは宣言できません。

    WriteOnly プロパティを定義する場合、Set プロシージャはプロパティ全体を表します。 プロパティに 2 つのアクセス レベルが設定されるため、 Setに対して異なるアクセス レベルを宣言することはできません。

行動

  • プロパティ プロシージャから戻ります。 Set プロシージャが呼び出し元のコードに戻ると、格納する値を指定したステートメントに従って実行が続行されます。

    Set プロパティ プロシージャは、 Return ステートメント または Exit ステートメントを使用して返すことができます。

    Exit PropertyステートメントとReturn ステートメントにより、プロパティ プロシージャがすぐに終了します。 任意の数の Exit Property および Return ステートメントをプロシージャ内の任意の場所に記述でき、Exit Property ステートメントと Return ステートメントを混在させることができます。

次の例では、 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

こちらも参照ください