プロパティに値を割り当てるために使用する 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