首頁 > 後端開發 > C++ > C#中如何使用反射來取得呼叫方法的名稱及其類別?

C#中如何使用反射來取得呼叫方法的名稱及其類別?

Susan Sarandon
發布: 2024-12-31 22:48:11
原創
189 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板