使用反射获取方法和类型名称
在 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中文网其他相关文章!