首頁 >後端開發 >C++ >如何獲得C#中稱為當前方法的方法的名稱?

如何獲得C#中稱為當前方法的方法的名稱?

Susan Sarandon
Susan Sarandon原創
2025-02-01 02:21:09894瀏覽

How Can I Get the Name of the Method That Called the Current Method in C#?

在C#中獲取調用方法的方法名

C# 開發者經常需要確定調用當前執行方法的方法。雖然 System.Reflection.MethodBase.GetCurrentMethod() 可以獲取當前方法的信息,但要獲取調用方法的信息,需要更深入地了解堆棧跟踪。

遍歷堆棧跟踪

解析堆棧跟踪看似可行,但存在更簡潔直接的方法。 Assembly.GetCallingAssembly() 可以獲取調用程序集的信息,類似的方法也適用於方法。

向上遍歷堆棧

System.Diagnostics.StackTrace 類可以實現此目的。通過實例化此類並調用其 GetFrame(1) 方法,可以向上遍歷堆棧跟踪一級,並獲取調用方法。然後,可以使用 GetMethod().Name 獲取調用方法的名稱。

示例代碼

以下代碼演示了此技術的用法:

<code class="language-csharp">using System.Diagnostics;

// 获取调用堆栈
StackTrace stackTrace = new StackTrace();
// 获取调用方法名
Console.WriteLine(stackTrace.GetFrame(1).GetMethod().Name);</code>

或者,可以將整個過程簡化為一行代碼:

<code class="language-csharp">(new System.Diagnostics.StackTrace()).GetFrame(1).GetMethod().Name</code>

以上是如何獲得C#中稱為當前方法的方法的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn