Property Statement
プロパティの名前、およびプロパティの値を格納して取得するために使用されるプロパティ プロシージャを宣言します。
構文
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
[ <attributelist> ] [ accessmodifier ] Get
[ statements ]
End Get
[ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
[ statements ]
End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ]
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
指定項目
attributelist
任意。 このプロパティか、
Get
またはSet
プロシージャに適用される属性の一覧です。 「属性リスト」を参照してください。Default
任意。 このプロパティが、定義されているクラスまたは構造体の既定のプロパティであることを指定します。 既定のプロパティはパラメーターを受け取る必要があり、プロパティ名を指定せずに設定および取得できます。 プロパティを
Default
として宣言する場合、プロパティで、またはそのプロパティ プロシージャのいずれかでPrivate
を使用することはできません。accessmodifier
Property
ステートメントで、およびGet
ステートメントとSet
ステートメントのうちのいずれかで省略可能です。 次のいずれかの値を指定します。「 Access levels in Visual Basic」を参照してください。
propertymodifiers
任意。 次のいずれかの値を指定します。
MustOverride Overrides
NotOverridable Overrides
Shared
任意。 「Shared」を参照してください。
Shadows
任意。 「Shadows」を参照してください。
ReadOnly
任意。 「ReadOnly」を参照してください。
WriteOnly
任意。 「WriteOnly」を参照してください。
Iterator
任意。 「Iterator」を参照してください。
name
必須です。 プロパティ名。 「 Declared Element Names」を参照してください。
parameterlist
任意。 このプロパティのパラメーターと、
Set
プロシージャの指定できるその他のパラメーターを表すローカル変数名の一覧です。 パラメーター リストに関するページを参照してください。returntype
Option Strict
がOn
の場合は必ず指定します。 このプロパティによって返される値のデータ型。Implements
任意。 このプロパティが、それぞれがこのプロパティの含まれているクラスまたは構造体によって実装されたインターフェイスに定義されている、1 つ以上のプロパティを実装することを示します。 「Implements ステートメント」を参照してください。
implementslist
Implements
を指定する場合は、必ず指定します。 実装されるプロパティの一覧です。implementedproperty [ , implementedproperty ... ]
implementedproperty
の構文と指定項目は次のとおりです。interface.definedname
パーツ 説明 interface
必須です。 このプロパティの含まれているクラスまたは構造体によって実装されたインターフェイスの名前です。 definedname
必須です。 interface
の中でプロパティを定義するために使用する名前です。Get
任意。 プロパティが
ReadOnly
とマークされている場合は、必ず指定します。 プロパティの値を返すために使用されるGet
プロパティ プロシージャを開始します。Get
ステートメントは、自動的に実装されるプロパティ使用されません。statements
省略可能。
Get
またはSet
プロシージャ内で実行するためのステートメントのブロック。End Get
Get
プロパティ プロシージャを終了します。Set
任意。 プロパティが
WriteOnly
とマークされている場合は、必ず指定します。 プロパティの値を格納するために使用されるSet
プロパティ プロシージャを開始します。Set
ステートメントは、自動的に実装されるプロパティ使用されません。End Set
Set
プロパティ プロシージャを終了します。End Property
このプロパティの定義を終了します。
Remarks
Property
ステートメントは、プロパティの宣言を導入します。 プロパティには Get
プロシージャ (読み取り専用)、Set
プロシージャ (書き込み専用)、またはその両方 (読み取り/書き込み) を指定できます。 自動的に実装されるプロパティを使用する場合は、 Get
プロシージャと Set
プロシージャを省略できます。 詳細については、「 自動実装プロパティを参照してください。
Property
は、クラス レベルでのみ使用できます。 つまり、プロパティの宣言コンテキストは、クラス、構造体、モジュール、またはインターフェイスであることが必要で、ソース ファイル、名前空間、プロシージャ、ブロックでは宣言できません。 詳細については、「宣言コンテキストと既定のアクセス レベル」を参照してください。
既定では、プロパティはパブリック アクセスを使用します。 Property
ステートメントでアクセス修飾子を使用してプロパティのアクセス レベルを調整できます。また、必要に応じて、そのプロパティ プロシージャの 1 つをより制限の厳しいアクセス レベルに調整することもできます。
Visual Basic は、プロパティの割り当て時に Set
プロシージャにパラメーターを渡します。 Set
のパラメーターを指定しない場合、統合開発環境 (IDE) では value
という名前の暗黙的なパラメーターが使用されます。 このパラメーターは、プロパティに割り当てられる値を保持します。 通常はこの値をプライベート ローカル変数に格納し、これは Get
プロシージャが呼び出されるたびに返されます。
ルール
混合アクセス レベル。 読み取り/書き込みプロパティを定義する場合は、必要に応じて、
Get
またはSet
のいずれかのプロシージャに対して異なるアクセス レベルを指定できますが、両方に対して指定することはできません。 この場合、プロシージャのアクセス レベルは、プロパティのアクセス レベルよりも制限されている必要があります。 たとえば、プロパティがFriend
として宣言されている場合は、Set
プロシージャを、Public
ではなくPrivate
として宣言できます。ReadOnly
またはWriteOnly
プロパティを定義する場合、1 つのプロパティ プロシージャ (それぞれGet
またはSet
) がプロパティのすべてを表します。 このようなプロシージャに対して異なるアクセス レベルを宣言することはできません。これは、プロパティに 2 つのアクセス レベルが設定されるためです。戻り値の型。
Property
ステートメントは、返される値のデータ型を宣言できます。 任意のデータ型や、列挙、構造体、クラス、またはインターフェイスの名前を指定できます。returntype
を指定しない場合、プロパティはObject
を返します。実装: このプロパティで
Implements
キーワードが使用されている場合、含まれているクラスまたは構造体には、そのClass
またはStructure
ステートメントの直後にImplements
ステートメントが必要です。Implements
ステートメントには、implementslist
で指定された各インターフェイスを含める必要があります。 ただし、インターフェイスがProperty
を定義するときに使用する名前 (definedname
) は、このプロパティの名前と同じである必要はありません (name
)。
動作
プロパティ プロシージャからの復帰。
Get
またはSet
プロシージャから呼び出し元のコードに返されると、実行は、それを呼び出したステートメントの後のステートメントを使用して続行されます。Exit Property
およびReturn
ステートメントでは、プロパティ プロシージャがすぐに終了します。 任意の数のExit Property
およびReturn
ステートメントをプロシージャ内の任意の場所に記述でき、Exit Property
ステートメントとReturn
ステートメントを混在させることができます。戻り値。
Get
プロシージャから値を返すには、プロパティ名に値を割り当てるか、Return
ステートメントに値を含めることができます。 次の例では、プロパティ名quoteForTheDay
に戻り値を割り当ててから、Exit Property
ステートメントを使用して返します。Private quoteValue As String = "No quote assigned yet."
ReadOnly Property QuoteForTheDay() As String Get QuoteForTheDay = quoteValue Exit Property End Get End Property
name
に値を割り当てずにExit Property
を使用すると、Get
プロシージャは、プロパティのデータ型の既定値を返します。同時に、
Return
ステートメントによってGet
プロシージャの戻り値が割り当てられ、プロシージャが終了します。 次に例を示します。Private quoteValue As String = "No quote assigned yet."
ReadOnly Property QuoteForTheDay() As String Get Return quoteValue End Get End Property
例
次の例では、クラス内にプロパティを宣言しています。
Class Class1
' Define a local variable to store the property value.
Private propertyValue As String
' Define the property.
Public Property Prop1() As String
Get
' The Get property procedure is called when the value
' of a property is retrieved.
Return propertyValue
End Get
Set(ByVal value As String)
' The Set property procedure is called when the value
' of a property is modified. The value to be assigned
' is passed in the argument to Set.
propertyValue = value
End Set
End Property
End Class
関連項目
.NET