可能重复:
Retrieving the calling method name from within a method (C#)
我有一个班级A
,其中有一个名为Func1
的方法;这个功能是静态的。
现在有一些其他课程说B
,C
使用A.Func1
如何获取包含正在调用的函数的类名?
即
public class A
{
public static void Func1()
{
// who called me?
}
}
public class B
{
public void CallFunc()
{
A.Func1();
}
}
public class C
{
public void AlsoCallFunc()
{
A.Func1();
}
}
答案 0 :(得分:2)
可以使用StackTrace类来获取此类信息。
要获取调用方法名称,我有时会使用此函数。 但您需要检查它是否适用于您的特定情况:
private static string GetCallingMethodName()
{
const int iCallDeepness = 2;
System.Diagnostics.StackTrace stack = new System.Diagnostics.StackTrace(false);
System.Diagnostics.StackFrame sframe = stack.GetFrame(iCallDeepness);
return sframe.GetMethod().Name;
}
答案 1 :(得分:0)
也许您使用
的输出Environment.StackTrace
答案 2 :(得分:0)
如果您需要使用表单并想知道正在调用哪个表单,请使用事件和发件人