_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 名前空間



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「_MethodInfo.GetBaseDefinition」の関連用語

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

   

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



_MethodInfo.GetBaseDefinitionのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS