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