Get ステートメント
プロパティの値を取得するための Get プロパティ プロシージャを宣言します。
[ <attributelist> ] [ accessmodifier ] Get()
[ statements ]
End Get
指定項目
語句 |
定義 |
attributelist |
省略可能です。「属性リスト」を参照してください。 |
accessmodifier |
省略可能です。このプロパティの Get ステートメントか Set ステートメントの一方に指定できます。次のいずれかになります。 「Visual Basic でのアクセス レベル」を参照してください。 |
statements |
省略可能です。Get プロパティ プロシージャが呼び出されたときに実行する、1 つ以上のステートメントを指定します。 |
End Get |
必ず指定します。この Get プロパティ プロシージャの定義を終了します。 |
解説
WriteOnly でマーク付けされていないすべてのプロパティに、Get プロパティ プロシージャが必要です。Get プロシージャは、プロパティの現在の値を取得するために使用します。
式でプロパティの値が必要になると、Visual Basic が自動的にプロパティの Get プロシージャを呼び出します。
プロパティ宣言の本体には、プロパティの Get プロシージャと Set プロシージャのみを Property ステートメント ステートメントと End Property ステートメントの間に記述できます。それ以外のプロシージャを含めることはできません。特に、プロパティの現在の値を含めることはできません。現在の値をどちらかのプロパティ プロシージャの内部に含めると他のプロパティ プロシージャから値にアクセスできなくなるため、この値はプロパティの外部に格納する必要があります。通常は、プロパティと同じレベルで Private (Visual Basic) 変数を宣言し、この中に現在の値を格納します。Get プロシージャは、それが適用されるプロパティの内側に定義する必要があります。
Get プロシージャの既定のアクセス レベルは、accessmodifier を Get ステートメントで使用しない限り、その包含プロパティのアクセス レベルになります。
規則
**アクセス レベルの混在。**読み書き可能なプロパティを定義する場合、必要であれば Get プロシージャと Set プロシージャのどちらか一方にだけ、プロパティとは異なるアクセス レベルを指定できます。これを指定する場合は、プロシージャにプロパティよりも制限の高いアクセス レベルを指定する必要があります。たとえば、プロパティを Friend で宣言する場合、Get プロシージャを Private で宣言できますが、Public では宣言できません。
ReadOnly プロパティを定義する場合、プロパティは Get プロシージャだけで機能します。Get に違うアクセス レベルを宣言すると、プロパティに 2 つのアクセス レベルを設定することになるため宣言できません。
戻り値の型。Property ステートメントには、プロシージャが返す値のデータ型を宣言できます。Get プロシージャは自動的にそのデータ型を返します。任意のデータ型か、列挙体、構造体、クラス、またはインターフェイスの名前を指定できます。
Property ステートメントに returntype が指定されなければ、プロシージャは Object を返します。
[動作]
プロシージャから戻るときの動作Get プロシージャから呼び出し元のコードに制御が戻るとき、プロパティ値を要求したステートメントの内部から実行が続行されます。
Get プロパティ プロシージャは Return ステートメント (Visual Basic)を使って値を返すか、またはプロパティ名に戻り値を代入して値を返すことができます。詳細については、「Function ステートメント (Visual Basic)」の "戻り値" を参照してください。
Exit Property ステートメントおよび Return ステートメントは、プロパティ プロシージャを直ちに終了します。プロシージャの任意の場所に、Exit Property ステートメントと Return ステートメントを何度でも定義できます。また、Exit Property ステートメントと Return ステートメントを混在して使用できます。
**戻り値。**Get プロシージャから値を返すには、プロパティ名に値を割り当てるか、または Return ステートメント (Visual Basic) に値を指定します。Return ステートメントは Get プロシージャの戻り値を代入すると同時に、プロシージャを終了します。
プロパティ名に値を代入せずに Exit Property を使用すると、Get プロシージャは、そのプロパティのデータ型の既定値を返します。詳細については、「Function ステートメント (Visual Basic)」の "戻り値" を参照してください。
次の例は、読み取り専用の quoteForTheDay プロパティからプライベート変数 quoteValue に格納された値を返すための、2 つの方法を示しています。
Private quoteValue As String = "No quote assigned yet."
ReadOnly Property quoteForTheDay() As String Get quoteForTheDay = quoteValue Exit Property End Get End Property
ReadOnly Property quoteForTheDay() As String Get Return quoteValue End Get End Property
使用例
次の例は、Get ステートメントを使って、プロパティの値を返します。
Class propClass
' Define a private local variable to store the property value.
Private currentTime As String
' Define the read-only property.
Public ReadOnly Property dateAndTime() As String
Get
' The Get procedure is called automatically when the
' value of the property is retrieved.
currentTime = CStr(Now)
' Return the date and time As a string.
Return currentTime
End Get
End Property
End Class
参照
処理手順
チュートリアル: クラスの定義 (Visual Basic)