方法 : フィールドおよびプロパティをクラスに追加する
更新 : 2007 年 11 月
フィールドおよびプロパティを使用して、オブジェクトに情報を格納できます。フィールドおよびプロパティは、クライアント アプリケーションからはほとんど見分けることができませんが、クラス内部では個別に宣言されます。フィールドは、クラスによって公開されるパブリック変数です。プロパティは、Property プロシージャを使用して、値を設定する方法や値を返す方法を制御します。
フィールドをクラスに追加するには
クラス定義でパブリック変数を宣言します。コード例を次に示します。
Class ThisClass Public ThisField As String End Class
プロパティをクラスに追加するには
クラス内部で、プロパティの値を格納するローカル変数を定義します。この手順は、プロパティ自体にストレージが割り当てられないために必要となります。値が直接変更されないようにするには、プロパティ値を格納する変数を Private で宣言します。
プロパティの宣言に、Public や Shared などの適切な修飾子を指定します。Property キーワードを使用して、プロパティの名前と、プロパティが格納および返すデータ型を宣言します。
プロパティ定義で、Get プロパティ プロシージャおよび Set プロパティ プロシージャを定義します。Get プロパティ プロシージャは、プロパティの値を返すために使用され、構文上は関数とほぼ同じです。これらは、引数を受け取りません。また、プロパティ値を格納するために使用されるクラス内で宣言されたプライベート ローカル変数の値を返すために使用できます。Set プロパティ プロシージャは、プロパティの値を設定するために使用され、プロパティ自体と同じデータ型を持つ、通常 Value と呼ばれるパラメータを持っています。プロパティの値を変更するときには、Set プロパティ プロシージャに Value が渡され、妥当性を検査されてローカル変数に格納されます。
End Get ステートメントおよび End Set ステートメントを必要に応じて使用して、Get プロパティ プロシージャおよび Set プロパティ プロシージャを終了します。
End Property ステートメントでプロパティ ブロックを終了します。
メモ : Visual Studio 統合開発環境 (IDE: Integrated Development Environment) で作業している場合は、空の Get プロパティ プロシージャおよび Set プロパティ プロシージャを作成できます。「Property PropName As DataType (PropName はプロパティの名前を表し、DataType は Integer などの特定のデータ型を表します)」と入力すると、プロパティ プロシージャがコード エディタに表示されます。
クラス内でプロパティを宣言するコード例を次に示します。
Class ThisClass Private m_PropVal As String Public Property One() As String Get ' Return the value stored in the local variable. Return m_PropVal End Get Set(ByVal Value As String) ' Store the value in a local variable. m_PropVal = Value End Set End Property End Class
ThisClass のインスタンスを作成して、プロパティの値を One に設定するときに、Set プロパティ プロシージャが呼び出され、値が Value パラメータに渡されます。渡された値は、m_PropVal というローカル変数に格納されます。このプロパティの値を取得するときは、Get プロパティ プロシージャが関数のように呼び出され、ローカル変数 m_PropVal. に格納されている値が返されます。