首页 >后端开发 >C++ >如何获得C#中称为当前方法的方法的名称?

如何获得C#中称为当前方法的方法的名称?

Susan Sarandon
Susan Sarandon原创
2025-02-01 02:21:09945浏览

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