MethodInfo.GetBaseDefinitionとは? わかりやすく解説

MethodInfo.GetBaseDefinition メソッド

派生クラスによってオーバーライドされた場合、このインスタンスが表すメソッドが最初に宣言された直接または間接基本クラスで、そのメソッドの MethodInfo オブジェクトを返します。

名前空間: System.Reflection
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public MustOverride Function
 GetBaseDefinition As MethodInfo
Dim instance As MethodInfo
Dim returnValue As MethodInfo

returnValue = instance.GetBaseDefinition
public abstract MethodInfo GetBaseDefinition ()
public:
virtual MethodInfo^ GetBaseDefinition () abstract
public abstract MethodInfo GetBaseDefinition ()
public abstract function GetBaseDefinition
 () : MethodInfo

戻り値
このメソッドの最初の実装に対する MethodInfo オブジェクト。

解説解説

GetBaseDefinition は、指定したメソッドについて、クラス階層構造における最初の定義を返します。

メソッドがインターフェイスで宣言されている場合、GetBaseDefinition はそのメソッドを返します。

メソッドが基本クラスで定義されている場合、GetBaseDefinition は次のように動作します。

GetBaseDefinition メソッドを取得するには、最初に Type クラスを取得します。そして、その Type から MethodInfo を取得します。そして、その MethodInfo から GetBaseDefinition を取得します。

使用例使用例

このコード例は、GetBaseDefinition の動作を示しています。

Imports System
Imports System.Reflection

Public Class GetBaseDef
    
    Public Shared Sub Main()
        Dim t As Type = GetType(B)
        Dim m As MethodInfo
        
        ' Print A Void B().
        m = t.GetMethod("B")
        Console.WriteLine(m.GetBaseDefinition().DeclaringType.ToString() + "
 " _
           + m.GetBaseDefinition().ToString())
        
        ' Print A Void C().
        m = t.GetMethod("C")
        Console.WriteLine(m.GetBaseDefinition().DeclaringType.ToString() + "
 " _
           + m.GetBaseDefinition().ToString())
        
        ' Print B Void D().
        m = t.GetMethod("D", BindingFlags.Public Or
 BindingFlags.Instance _
           Or BindingFlags.DeclaredOnly)
        Console.WriteLine(m.GetBaseDefinition().DeclaringType.ToString() + "
 " _
           + m.GetBaseDefinition().ToString())
    End Sub
    
End Class
 

Public Class A
    
    Public Overridable Sub
 B()
        Console.WriteLine("C")
    End Sub
    
    Public Overridable Sub
 C()
        Console.WriteLine("C")
    End Sub
    
    Public Overridable Sub
 D()
        Console.WriteLine("E")
    End Sub
End Class
 
Public Class B
    Inherits A
    
    Public Overrides Sub
 C()
        Console.WriteLine("C")
    End Sub
    
    Public Shadows Sub D()
        Console.WriteLine("D")
    End Sub
End Class
using System;
using System.Reflection;

public class GetBaseDef {
    public static void Main(String[]
 args)
    {
    Type t = typeof(B);
    MethodInfo m;

    // Print A Void B().
    m = t.GetMethod("B");
    Console.WriteLine(m.GetBaseDefinition().DeclaringType + " " + m.GetBaseDefinition());

    // Print A Void C().
    m = t.GetMethod("C");
    Console.WriteLine(m.GetBaseDefinition().DeclaringType + " " + m.GetBaseDefinition());

    // Print B Void D().
    m = t.GetMethod("D", (BindingFlags.Public |
                  BindingFlags.Instance |
                  BindingFlags.DeclaredOnly));
    Console.WriteLine(m.GetBaseDefinition().DeclaringType + " " + m.GetBaseDefinition());
    }

}

public class A
{
    public virtual void B() { Console.WriteLine("C");
 }
    public virtual void C() { Console.WriteLine("C");
 }
    public virtual void D() { Console.WriteLine("E");
 }
}

public class B : A
{
    public override void C() { Console.WriteLine("C");
 }
    public new void D()
  { Console.WriteLine("D"); }
}
using namespace System;
using namespace System::Reflection;
public ref class A
{
public:
   virtual void B()
   {
      Console::WriteLine( "C" );
   }

   virtual void C()
   {
      Console::WriteLine( "C" );
   }

   virtual void D()
   {
      Console::WriteLine( "E" );
   }

};

public ref class B: public
 A
{
public:
   virtual void C() override
   {
      Console::WriteLine( "C" );
   }

   virtual void D() override
   {
      Console::WriteLine( "D" );
   }
};

int main()
{
   Type^ t = B::typeid;
   MethodInfo^ m;

   // Print A Void B().
   m = t->GetMethod( "B" );
   Console::WriteLine( "{0} {1}", m->GetBaseDefinition()->DeclaringType,
 m->GetBaseDefinition() );

   // Print A Void C().
   m = t->GetMethod( "C" );
   Console::WriteLine( "{0} {1}", m->GetBaseDefinition()->DeclaringType,
 m->GetBaseDefinition() );

   // Print B Void D().
   m = t->GetMethod( "D", static_cast<BindingFlags>((BindingFlags::Public
 | BindingFlags::Instance | BindingFlags::DeclaredOnly)) );
   Console::WriteLine( "{0} {1}", m->GetBaseDefinition()->DeclaringType,
 m->GetBaseDefinition() );
}
import System.*;
import System.Reflection.*;

public class GetBaseDef
{   
    public static void main(String[]
 args)
    {
        Type t = B.class.ToType();
        MethodInfo m;

        // Print A Void B().
        m = t.GetMethod("B");
        Console.WriteLine((m.GetBaseDefinition().get_DeclaringType() + " "
 
            + m.GetBaseDefinition()));

        // Print A Void C().
        m = t.GetMethod("C");
        Console.WriteLine((m.GetBaseDefinition().get_DeclaringType() + " "
 
            + m.GetBaseDefinition()));

        // Print B Void D().
        m = t.GetMethod("D",BindingFlags.Public | BindingFlags.Instance
            | BindingFlags.DeclaredOnly);
        Console.WriteLine((m.GetBaseDefinition().get_DeclaringType() + " "
 
            + m.GetBaseDefinition()));
    } //main
} //GetBaseDef
 
public class A
{   
    public void B()
    {
        Console.WriteLine("C");
    } //B

    public void C()
    {
        Console.WriteLine("C");
    } //C

    public void D()
    {
        Console.WriteLine("E");
    } //D
} //A
 
public class B extends A
{   
    public void C()
    {
        Console.WriteLine("C");
    } //C

    public void D() 
    {
        Console.WriteLine("D");
    } //D
} //B 
import System;
import System.Reflection;

public class GetBaseDef {
    public static function
 Main() : void 
    {
    var t : Type = B;
    var m : MethodInfo;

    // Print A Void B().
    m = t.GetMethod("B");
    Console.WriteLine(m.GetBaseDefinition().DeclaringType + " " + m.GetBaseDefinition());

    // Print A Void C().
    m = t.GetMethod("C");
    Console.WriteLine(m.GetBaseDefinition().DeclaringType + " " + m.GetBaseDefinition());

    // Print B Void D().
    m = t.GetMethod("D", (BindingFlags.Public |
                  BindingFlags.Instance |
                  BindingFlags.DeclaredOnly));
    Console.WriteLine(m.GetBaseDefinition().DeclaringType + " " + m.GetBaseDefinition());
    }
}

GetBaseDef.Main();

public class A
{
    public function B() : void
  { Console.WriteLine("C"); }
    public function C() : void
 { Console.WriteLine("C"); }
    public function D() : void
 { Console.WriteLine("E"); }
}

public class B extends A
{
    public override function C() : void
 { Console.WriteLine("C"); }
    public hide function D() : void
 { Console.WriteLine("D"); }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

_MethodInfo.GetBaseDefinition メソッド

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

COM オブジェクトに、GetBaseDefinition メソッドへのバージョンに依存しないアクセスが用意されています。

このメソッドは、CLS に準拠していません。  

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Function GetBaseDefinition As MethodInfo
Dim instance As _MethodInfo
Dim returnValue As MethodInfo

returnValue = instance.GetBaseDefinition
MethodInfo GetBaseDefinition ()
MethodInfo^ GetBaseDefinition ()
MethodInfo GetBaseDefinition ()
function GetBaseDefinition () : MethodInfo

戻り値
このメソッドの最初の実装に対する MethodInfo オブジェクト。

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
_MethodInfo インターフェイス
_MethodInfo メンバ
System.Runtime.InteropServices 名前空間


このページでは「.NET Framework クラス ライブラリ リファレンス」からMethodInfo.GetBaseDefinitionを検索した結果を表示しています。
Weblioに収録されているすべての辞書からMethodInfo.GetBaseDefinitionを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からMethodInfo.GetBaseDefinition を検索

英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「MethodInfo.GetBaseDefinition」の関連用語

MethodInfo.GetBaseDefinitionのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



MethodInfo.GetBaseDefinitionのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS