次の方法で共有


TypeBuilder.DefineMethodOverride メソッド

指定したメソッド宣言を実装するメソッド本体を指定します。

Public Sub DefineMethodOverride( _
   ByVal methodInfoBody As MethodInfo, _   ByVal methodInfoDeclaration As MethodInfo _)
[C#]
public void DefineMethodOverride(MethodInfomethodInfoBody,MethodInfomethodInfoDeclaration);
[C++]
public: void DefineMethodOverride(MethodInfo* methodInfoBody,MethodInfo* methodInfoDeclaration);
[JScript]
public function DefineMethodOverride(
   methodInfoBody : MethodInfo,methodInfoDeclaration : MethodInfo);

パラメータ

  • methodInfoBody
    使用するメソッド本体。 MethodBuilder オブジェクトです。
  • methodInfoDeclaration
    宣言を使用するメソッド。

例外

例外の種類 条件
ArgumentException methodInfoBody は、このクラスに属していません。
ArgumentNullException methodInfoBody または methodInfoDeclaration が null 参照 (Visual Basic では Nothing) です。
InvalidOperationException この型は、 CreateType を使用して既に作成されています。

または

メソッド methodInfoBody の宣言型がこの型ではありません。

解説

DefineMethodOverride は、メソッド impl を定義します。メソッド impl は、実装へのトークン ポイントで、本体が実装する宣言を指すトークンです。本体は、メソッド impl が定義されている型で定義する必要があります。また、本体は仮想である必要があります。宣言は、型、派生クラスのメソッド、または型で定義されているメソッドによって実装されたインターフェイスで定義されるメソッドにできます。宣言がインターフェイスだけにある場合は、そのインターフェイスに定義されているスロットが変更されます。宣言が基本型のメソッドになる場合、メソッドのスロットはオーバーライドされ、オーバーライドされたメソッドの重複も置き換えられます。オーバーライドされたメソッドを宣言済みの実メソッドにすることはできません。メソッドが同じ型にある場合は、スロットが置き換えられ、置き換えられたメソッドの重複がオーバーライドされます。

使用例

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

TypeBuilder クラス | TypeBuilder メンバ | System.Reflection.Emit 名前空間