プロパティ定義はProperty
ステートメントからEnd Property
ステートメントまでの間に挟みます。 この定義では、 Get
プロシージャ、 Set
プロシージャ、またはその両方を定義します。 プロパティのすべてのコードは、これらのプロシージャ内にあります。
Get
プロシージャはプロパティの値を取得し、Set
プロシージャは値を格納します。 プロパティに読み取り/書き込みアクセス権を付与する場合は、両方のプロシージャを定義する必要があります。 読み取り専用プロパティの場合、 Get
のみを定義し、書き込み専用プロパティの場合は Set
のみを定義します。
プロパティを作成するには
プロパティまたはプロシージャの外部では、 Property ステートメントを使用し、その後に
End Property
ステートメントを使用します。プロパティがパラメーターを受け取る場合は、プロシージャの名前を指定して
Property
キーワードに従い、パラメーター リストをかっこで囲みます。かっこの後に
As
句を付けて、プロパティの値のデータ型を指定します。 書き込み専用プロパティの場合でも、データ型を指定する必要があります。必要に応じて、
Get
プロシージャとSet
プロシージャを追加します。 次の手順を参照してください。
プロパティ値を取得する Get プロシージャを作成するには
Property
ステートメントとEnd Property
ステートメントの間に、Get ステートメントを記述し、その後にEnd Get
ステートメントを記述します。Get
プロシージャのパラメーターを定義する必要はありません。Get
ステートメントとEnd Get
ステートメントの間にプロパティの値を取得するコード ステートメントを配置します。 このコードには、プロパティの値の生成と返しに加えて、他の計算やデータ操作を含めることができます。Return
ステートメントを使用して、プロパティの値を呼び出し元のコードに返します。
読み取り/書き込みプロパティと読み取り専用プロパティの Get
プロシージャを記述する必要があります。 書き込み専用プロパティに Get
プロシージャを定義しないでください。
プロパティの値を書き込む Set プロシージャを作成するには
Property
ステートメントとEnd Property
ステートメントの間に Set ステートメントを記述し、その後にEnd Set
ステートメントを記述します。Set
ステートメントでは、必要に応じて、Set
キーワードの後にパラメーター リストをかっこで囲みます。 パラメーター リストが存在しない場合、または空の場合は、プロパティ自体の型であるValue
という名前の暗黙的なパラメーターが定義されます。 パラメーター リストが空でない場合は、必要に応じて別の名前を使用できますが、パラメーターのデータ型はプロパティ自体と同じである必要があります。Set
ステートメントとEnd Set
ステートメントの間のプロパティに値を格納するコード ステートメントを配置します。 このコードには、プロパティの値の検証と格納に加えて、他の計算やデータ操作を含めることができます。value パラメーターを使用して、呼び出し元のコードによって指定された値を受け入れます。 この値は、代入ステートメントに直接格納することも、式で使用して格納する内部値を計算することもできます。
読み取り/書き込みプロパティと書き込み専用プロパティの Set
プロシージャを記述する必要があります。 読み取り専用プロパティに Set
プロシージャを定義することはできません。
例
次の例では、姓と姓の 2 つの構成要素名として完全な名前を格納する読み取り/書き込みプロパティを作成します。 呼び出し元のコードが fullName
を読み取ると、Get
プロシージャが 2 つの構成要素名を結合し、フル ネームを返します。 呼び出し元のコードが新しいフル ネームを割り当てると、Set
プロシージャがそれを 2 つの構成要素名に分割することを試みます。 スペースが見つからない場合は、すべてが名として格納されます。
Dim firstName, lastName As String
Property fullName() As String
Get
If lastName = "" Then
Return firstName
Else
Return firstName & " " & lastName
End If
End Get
Set(ByVal Value As String)
Dim space As Integer = Value.IndexOf(" ")
If space < 0 Then
firstName = Value
lastName = ""
Else
firstName = Value.Substring(0, space)
lastName = Value.Substring(space + 1)
End If
End Set
End Property
次の例は、 fullName
のプロパティ プロシージャの一般的な呼び出しを示しています。 最初の呼び出しはプロパティ値を設定し、2 番目の呼び出しはそれを取得します。
fullName = "MyFirstName MyLastName"
MsgBox(fullName)
こちらも参照ください
.NET