方法: オブジェクトのメンバーにアクセスする (Visual Basic)

オブジェクトを参照しているオブジェクト変数がある場合、そのオブジェクトのメンバー (メソッド、プロパティ、フィールド、イベントなど) を使いたいことがよくあります。 たとえば、新しい Form オブジェクトを作成した後、その Text プロパティを設定したり、その Focus メソッドを呼び出したりする場合です。

メンバーへのアクセス

オブジェクトのメンバーには、それを参照している変数を使用してアクセスします。

オブジェクトのメンバーにアクセスするには

  • オブジェクト変数名とメンバー名の間に、メンバー アクセス演算子 (.) を使用します。

    currentText = newForm.Text
    

    メンバーが Shared である場合は、そのメンバーにアクセスするために変数は必要ありません。

既知の型のオブジェクトのメンバーへのアクセス

コンパイル時にオブジェクトの型がわかっている場合は、それを参照している変数に対して "事前バインディング" を使用できます。

コンパイル時に型がわかっているオブジェクトのメンバーにアクセスするには

  1. 変数に割り当てるオブジェクトの型として、オブジェクト変数を宣言します。

    Dim extraForm As System.Windows.Forms.Form
    

    Option Strict On を使用すると、Form オブジェクト (または、Form から派生した型のオブジェクト) のみを、extraForm に割り当てることができます。 Form への CType 拡大変換を使用してクラスまたは構造体を定義した場合は、そのクラスまたは構造体を extraForm に割り当てることもできます。

  2. オブジェクト変数名とメンバー名の間に、メンバー アクセス演算子 (.) を使用します。

    extraForm.Show()
    

    Option Strict の設定に関係なく、Form クラスに固有のすべてのメソッドとプロパティにアクセスすることができます。

型が不明なオブジェクトのメンバーへのアクセス

コンパイル時にオブジェクトの型がわからない場合は、それを参照している変数に対して "遅延バインディング" を使用する必要があります。

コンパイル時に型がわからないオブジェクトのメンバーにアクセスするには

  1. オブジェクト変数を Object データ型として宣言します。 (変数を Object として宣言することは、System.Object として宣言することと同じです。)

    Dim someControl As Object
    

    Option Strict On を使用すると、Object クラスで定義されているメンバーにのみアクセスすることができます。

  2. オブジェクト変数名とメンバー名の間に、メンバー アクセス演算子 (.) を使用します。

    someControl.GetType()
    

    オブジェクト変数に割り当てる任意のオブジェクトのメンバーにアクセスできるようにするには、Option Strict Off を設定する必要があります。 このようにすると、変数に割り当てたオブジェクトによって特定のメンバーが公開されていることを、コンパイラでは保証できません。 アクセスしようとしたメンバーがオブジェクトによって公開されていない場合、MemberAccessException 例外が発生します。

関連項目