首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#如何获取调用者的调用者成员名称?

在C#中,可以使用StackTrace类来获取调用者的调用者成员名称。StackTrace类提供了对调用堆栈的访问,可以获取调用堆栈中的帧信息。

以下是一个示例代码,演示如何使用StackTrace类获取调用者的调用者成员名称:

代码语言:txt
复制
using System.Diagnostics;

public class MyClass
{
    public void Method1()
    {
        string callerMemberName = GetCallerMemberName();
        Console.WriteLine("Caller member name: " + callerMemberName);
    }

    public void Method2()
    {
        Method1();
    }

    private string GetCallerMemberName()
    {
        StackTrace stackTrace = new StackTrace();
        StackFrame[] stackFrames = stackTrace.GetFrames();

        // 获取调用者的调用者帧
        StackFrame callerFrame = stackFrames[2];
        MethodBase callerMethod = callerFrame.GetMethod();

        // 获取调用者的调用者成员名称
        string callerMemberName = callerMethod.Name;
        return callerMemberName;
    }
}

在上述示例中,GetCallerMemberName方法使用StackTrace类获取调用堆栈信息,并通过索引2获取调用者的调用者帧。然后,通过GetMethod方法获取调用者的调用者方法,并从中获取成员名称。

请注意,索引2表示调用者的调用者帧,如果需要获取更深层次的调用者信息,可以根据实际情况调整索引值。

这是一个简单的示例,演示了如何使用StackTrace类获取调用者的调用者成员名称。在实际应用中,可以根据需要进行适当的调整和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券