プロパティに値を割り当てるために使用する 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 Strict
がOn
場合は必須です。
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
こちらも参照ください
.NET