オブジェクト メンバ
更新 : 2007 年 11 月
オブジェクトは、オブジェクト指向プログラミングの基本単位です。オブジェクトは、アプリケーションの要素であり、クラスのインスタンスです。フィールド、プロパティ、メソッド、およびイベントは、オブジェクトの構成要素であり、オブジェクトのメンバを構成します。
オブジェクト
オブジェクトは、Form または Label などのクラスのインスタンスを表します。非共有メンバにアクセスする前に、オブジェクトを作成する必要があります。これを行うには、New キーワードを使用して、オブジェクトを作成するクラスを指定します。その後、新しいオブジェクトをオブジェクト変数に代入します。
Dim warningLabel As New System.Windows.Forms.Label
詳細については、「方法 : オブジェクトを作成する」を参照してください。
メンバ アクセス
オブジェクト変数の名前、ピリオド (.)、およびメンバの名前の順で指定して、オブジェクトのメンバにアクセスします。Label オブジェクトの Text プロパティを設定する例を次に示します。
warningLabel.Text = "Data not saved"
フィールドとプロパティ
プロパティとフィールドは、オブジェクトに格納されている情報を表します。プロシージャでローカル変数を取得および設定する場合と同じ方法で、代入ステートメントを使用して値を取得および設定します。Label オブジェクトの Width プロパティを取得し、ForeColor プロパティを設定する例を次に示します。
Dim warningWidth As Integer = warningLabel.Width
warningLabel.ForeColor = System.Drawing.Color.Red
フィールドもメンバ変数と呼ばれます。
詳細については、「プロパティ プロシージャとフィールド」を参照してください。
メソッド
メソッドは、オブジェクトが実行できる処理です。たとえば、Add は、コンボ ボックスに新しいエントリを追加する、ComboBox オブジェクトのメソッドです。
Timer オブジェクトの Start メソッドの例を次に示します。
Dim safetyTimer As New System.Windows.Forms.Timer
safetyTimer.Start()
メソッドとは、オブジェクトによって公開されるプロシージャです。
詳細については、「方法 : メソッドを使用してアクションを実行する」を参照してください。
イベント
イベントとは、オブジェクトによって認識されるアクション (マウス クリックやキー入力など) であり、それに応答するためのコードを記述できます。イベントは、ユーザーによる操作やプログラム コードの結果として発生する場合と、システムによって発生する場合があります。イベントを通知するコードの場合はイベントを発生させると言い、それに応答するコードの場合は処理すると言います。
オブジェクトが発生させるカスタム イベントを独自に作成し、他のオブジェクトに処理させることもできます。詳細については、「イベントとイベント ハンドラ」を参照してください。
インスタンス メンバおよび共有メンバ
クラスからオブジェクトを作成するとき、結果はそのクラスのインスタンスになります。Shared (Visual Basic) キーワードを使用して宣言されていないメンバは、厳密な意味で特定のインスタンスに属しているインスタンス メンバです。あるインスタンスのインスタンス メンバは、同じクラスの他のインスタンスにある同じメンバとは無関係です。たとえば、インスタンス メンバ変数は異なるインスタンスで異なる値を持つことができます。
Shared キーワードを使用して宣言されたメンバは、特定のインスタンスにではなく、クラス全体に属している共有メンバです。作成したクラスのインスタンスの数にかかわらず、またインスタンスを作成していない場合でも、共有メンバは 1 つだけ存在します。たとえば、共有メンバ変数は、クラスにアクセスできるすべてのコードが利用できる値を 1 つだけ持っています。
メンバを一覧表示する IntelliSense
[メンバの一覧] オプションを起動すると、たとえば、メンバ アクセス演算子としてピリオド (.) を入力したときに、IntelliSense によってクラスのメンバが一覧表示されます。クラスのインスタンスとして宣言された変数の名前の後にピリオドを入力した場合、IntelliSense によってすべてのインスタンス メンバが一覧表示されますが、共有メンバは表示されません。クラス名自体の後にピリオドを入力した場合、IntelliSense によってすべての共有メンバが一覧表示されますが、インスタンス メンバは表示されません。詳細については、「IntelliSense の使用方法」を参照してください。