方法: オブジェクトのメンバーにアクセスする (Visual Basic)
オブジェクトを参照しているオブジェクト変数がある場合、そのオブジェクトのメンバー (メソッド、プロパティ、フィールド、イベントなど) を使いたいことがよくあります。 たとえば、新しい Form オブジェクトを作成した後、その Text プロパティを設定したり、その Focus メソッドを呼び出したりする場合です。
メンバーへのアクセス
オブジェクトのメンバーには、それを参照している変数を使用してアクセスします。
オブジェクトのメンバーにアクセスするには
オブジェクト変数名とメンバー名の間に、メンバー アクセス演算子 (
.
) を使用します。currentText = newForm.Text
メンバーが Shared である場合は、そのメンバーにアクセスするために変数は必要ありません。
既知の型のオブジェクトのメンバーへのアクセス
コンパイル時にオブジェクトの型がわかっている場合は、それを参照している変数に対して "事前バインディング" を使用できます。
コンパイル時に型がわかっているオブジェクトのメンバーにアクセスするには
変数に割り当てるオブジェクトの型として、オブジェクト変数を宣言します。
Dim extraForm As System.Windows.Forms.Form
Option Strict On
を使用すると、Form オブジェクト (または、Form から派生した型のオブジェクト) のみを、extraForm
に割り当てることができます。 Form へのCType
拡大変換を使用してクラスまたは構造体を定義した場合は、そのクラスまたは構造体をextraForm
に割り当てることもできます。オブジェクト変数名とメンバー名の間に、メンバー アクセス演算子 (
.
) を使用します。extraForm.Show()
Option Strict
の設定に関係なく、Form クラスに固有のすべてのメソッドとプロパティにアクセスすることができます。
型が不明なオブジェクトのメンバーへのアクセス
コンパイル時にオブジェクトの型がわからない場合は、それを参照している変数に対して "遅延バインディング" を使用する必要があります。
コンパイル時に型がわからないオブジェクトのメンバーにアクセスするには
オブジェクト変数を Object データ型として宣言します。 (変数を
Object
として宣言することは、System.Object として宣言することと同じです。)Dim someControl As Object
Option Strict On
を使用すると、Object クラスで定義されているメンバーにのみアクセスすることができます。オブジェクト変数名とメンバー名の間に、メンバー アクセス演算子 (
.
) を使用します。someControl.GetType()
オブジェクト変数に割り当てる任意のオブジェクトのメンバーにアクセスできるようにするには、
Option Strict Off
を設定する必要があります。 このようにすると、変数に割り当てたオブジェクトによって特定のメンバーが公開されていることを、コンパイラでは保証できません。 アクセスしようとしたメンバーがオブジェクトによって公開されていない場合、MemberAccessException 例外が発生します。
関連項目
.NET