プロパティ定義は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