方法: プロパティを作成する (Visual Basic)
プロパティ定義は、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
ステートメントの間に、プロパティに値を格納するコード ステートメントを配置します。 このコードでは、プロパティの値を検証して格納するだけでなく、他の計算やデータ操作も含めることができます。値パラメーターを使用して、呼び出し元のコードで指定された値を受け入れます。 この値は、代入ステートメントで直接格納することも、式で使用して格納する内部値を計算することもできます。
読み取り/書き込みプロパティと書き込み専用プロパティの 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