Visual Basic における Me、My、MyBase、MyClass

Visual Basic の Me、My、MyBase、および MyClass は名前は似ていますが、用途はそれぞれ異なります。ここでは、これらの概念の違いを明確にするために、それぞれの特徴について説明します。

Me

Me キーワードを使用すると、コードが実行されているクラスまたは構造体の特定のインスタンスを参照できます。Me は、現在のインスタンスを参照するオブジェクト変数または構造体変数のように動作します。特に、別のクラス、構造体、またはモジュールのプロシージャに、クラスや構造体の現在のインスタンスに関する情報を渡す場合などには、Me が役立ちます。

たとえば、モジュール内に次のプロシージャがあったとします。

Sub ChangeFormColor(FormName As Form)
   Randomize()
   FormName.BackColor = Color.FromArgb(Rnd() * 256, Rnd() * 256, Rnd() * 256)
End Sub

この場合に次のステートメントを使うと、上のプロシージャを呼び出し、Form クラスの現在のインスタンスを引数として渡すことができます。

ChangeFormColor(Me)

担当

My は、.NET Framework の数多くのクラスに簡単かつ直観的にアクセスするための手段であり、Visual Basic ユーザーがコンピューター、アプリケーション、設定、リソースなどとやり取りできるようにします。

MyBase

MyBase キーワードは、クラスの現在のインスタンスの基本クラスを参照するオブジェクト変数のように動作します。MyBase は、派生クラスでオーバーライドまたはシャドウされている基本クラスのメンバーにアクセスする目的でよく使用されます。MyBase.New は、派生クラスのコンストラクターから基本クラスのコンストラクターを明示的に呼び出すときに使用されます。

MyClass

MyClass キーワードは、クラスの現在のインスタンスを元の実装に従って参照するオブジェクト変数のように動作します。MyClass は Me と似ていますが、MyClass で呼び出されるメソッドは、すべて NotOverridable であるかのように扱われます。

参照

概念

継承の基本 (Visual Basic)