Set ステートメント (Visual Basic)
値をプロパティに割り当てるのに使用する Set
プロパティ プロシージャを宣言します。
構文
[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]
[ statements ]
End Set
指定項目
attributelist
任意。 「属性リスト」を参照してください。
accessmodifier
このプロパティの Get
および Set
ステートメントのいずれかで、省略可能です。 次のいずれかの値を指定します。
「 Access levels in Visual Basic」を参照してください。
value
任意。 プロパティの新しい値を含むパラメーターです。 指定されていない場合 (つまり、パラメーター リストが存在しないか空の場合)、value
という名前の暗黙的なパラメーターが定義されます。 この暗黙的パラメーターのデータ型は、この Set
ステートメントが宣言されているプロパティのデータ型です。
datatype
value
が存在し、Option Strict
が On
である場合は必須です。 value
が指定されていない場合は存在できません。 value
パラメーターのデータ型。 指定するデータ型は、この Set
ステートメントが宣言されているプロパティのデータ型と同じである必要があります。
statements
任意。 Set
プロパティ プロシージャが呼び出されたときに実行される 1 つ以上のステートメント。
End Set
必須です。 Set
プロパティ プロシージャの定義を終了します。
Remarks
プロパティが ReadOnly
とマークされている場合を除き、すべてのプロパティには Set
プロパティ プロシージャが必要です。 Set
プロシージャは、プロパティの値を設定するために使用します。
Visual Basic は、プロパティに格納される値が代入ステートメントによって提供されるときに、プロパティの Set
プロシージャを自動的に呼び出します。
Visual Basic は、プロパティの割り当て時に Set
プロシージャにパラメーターを渡します。 Set
のパラメーターを指定しない場合、統合開発環境 (IDE) では value
という名前の暗黙的なパラメーターが使用されます。 このパラメーターは、プロパティに割り当てられる値を保持します。 通常はこの値をプライベート ローカル変数に格納し、これは Get
プロシージャが呼び出されるたびに返されます。
プロパティ宣言の本体には、Property ステートメントと End Property
ステートメントの間に、プロパティの Get
と Set
のプロシージャのみを含めることができます。 これらのプロシージャ以外のものを格納することはできません。 特に、プロパティの現在の値を格納することはできません。 この値は、プロパティの外部に格納する必要があります。それをいずれかのプロパティ プロシージャの内部に格納した場合、他のプロパティ プロシージャからアクセスできなくなるためです。 通常の方法は、プロパティと同じレベルで宣言された Private 変数に値を格納することです。 Set
プロシージャは、適用先のプロパティの内部で定義する必要があります。
Set
ステートメントで accessmodifier
を使用しない限り、Set
プロシージャは既定で、それを含んでいるプロパティのアクセス レベルに設定されます。
ルール
混合アクセス レベル。 読み取り/書き込みプロパティを定義する場合は、必要に応じて、
Get
またはSet
のいずれかのプロシージャに対して異なるアクセス レベルを指定できますが、両方に対して指定することはできません。 この場合、プロシージャのアクセス レベルは、プロパティのアクセス レベルよりも制限されている必要があります。 たとえば、プロパティがFriend
として宣言されている場合は、Set
プロシージャを、Public
ではなくPrivate
として宣言できます。WriteOnly
プロパティを定義する場合、Set
プロシージャはプロパティ全体を表します。Set
に対して異なるアクセス レベルを宣言することはできません。それによって、プロパティに 2 つのアクセス レベルが設定されるためです。
動作
プロパティ プロシージャからの復帰。
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