ホームページ > バックエンド開発 > C++ > C# でリフレクションを使用して呼び出しメソッドとそのクラスの名前を取得するにはどうすればよいですか?

C# でリフレクションを使用して呼び出しメソッドとそのクラスの名前を取得するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-31 22:48:11
オリジナル
188 人が閲覧しました

How Can I Get the Name of the Calling Method and its Class in C# Using Reflection?

リフレクションを使用したメソッド名と型名の取得

C# では、現在のメソッドを呼び出しているメソッドの名前とそのメソッド名を取得できます。囲んでいるクラスの名前。 C# リフレクションを使用してこれを実現する方法は次のとおりです。

public class SomeClass
{
    public void SomeMethod()
    {
        StackFrame frame = new StackFrame(1);
        var method = frame.GetMethod();
        var type = method.DeclaringType;
        var name = method.Name;
    }
}
ログイン後にコピー

たとえば、次のコードを考えてみましょう。

public class Caller
{
   public void Call()
   {
      SomeClass s = new SomeClass();
      s.SomeMethod();
   }
}
ログイン後にコピー

このシナリオでは、名前は「Call」、型は次のようになります。 "Caller".

注: このメソッドは、呼び出し側メソッドにアクセスするために StackFrame を使用します。

.NET 4.5 以降の更新

.NET 4.5 以降の場合は、CallerMemberNameAttribute を使用するより便利な方法があります。この属性を使用すると、呼び出しメソッドの名前が自動的に割り当てられるメソッド パラメーターを指定できます。例:

public class SomeClass
{
    public void SomeMethod([CallerMemberName]string memberName = "")
    {
        Console.WriteLine(memberName); // Output will be the name of the calling method
    }
}
ログイン後にコピー

以上がC# でリフレクションを使用して呼び出しメソッドとそのクラスの名前を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート