C# 获取C中方法的名称#

C# 获取C中方法的名称#,c#,.net,monitoring,trace,C#,.net,Monitoring,Trace,是否有任何方法可以获取我们当前使用的方法的名称 private void myMethod() { string methodName = __CurrentMethodName__; MessageBox(methodName); } 像这样,返回类名的.ToString()有没有可能通过监视或跟踪应用程序之类的方式获取方法名?这将获取您的名称- string methodName = System.Reflection.MethodInfo.GetCurrentMethod

是否有任何方法可以获取我们当前使用的方法的名称

private void myMethod()
{
    string methodName = __CurrentMethodName__;
    MessageBox(methodName);
}

像这样,返回类名的.ToString()有没有可能通过监视或跟踪应用程序之类的方式获取方法名?

这将获取您的名称-

string methodName = System.Reflection.MethodInfo.GetCurrentMethod().Name;

简单地

.NET 4.5添加了属性,因此您可以使用:


这样做的好处是在编译时烘焙方法名,而不是在运行时烘焙。不幸的是,没有办法阻止有人调用
ShowMethodName(“不是真正的方法”)
,但这可能不是必需的。

您可以像这样获得有关方法的信息

var method = MethodInfo.GetCurrentMethod();
var name = method.Name;  //get method name
var parameters = method.GetParameters();  //get method parameters

方法名参数需要是defaultedUmm。。。我想这不是你编的。因此,在我们进行修复的同时,还需要键入它。:)
public string MyMethod()
{
    StackTrace st = new StackTrace ();
    StackFrame sf = st.GetFrame (1);

    string methodName = sf.GetMethod().Name;
}
using System.Runtime.CompilerServices;

void myMethod()
{
    ShowMethodName();
}

void ShowMethodName([CallerMemberName]string methodName = "")
{
    MessageBox(methodName);
}
var method = MethodInfo.GetCurrentMethod();
var name = method.Name;  //get method name
var parameters = method.GetParameters();  //get method parameters