使用反射取得方法和型別名稱
在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中文網其他相關文章!