リフレクションを使用したメソッド名と型名の取得
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 サイトの他の関連記事を参照してください。