Imr*_*ran 32 c# performance logging .net-4.5
我试图找到以有效的方式记录方法名称的方法,以及速度和可维护性.我想,在.NET 4.5中,除了速度部分之外,呼叫者信息属性仅用于此目的.我觉得这些只是使用的语法糖System.Reflection.MethodBase.GetCurrentMethod()或stackTrace.GetFrame(1).GetMethod().Name(来自这里).(或)这些方法是否也具有性能优势?
在C#中,有没有办法在编译时获取方法名称(就像在C++中一样)?
Dan*_*iel 75
调用者信息属性使C#编译器在调用点提供调用者的名称.这发生在编译时,没有涉及到反射.
public void DoProcessing()
{
LogCall();
}
public void LogCall([CallerMemberName] string memberName = "")
{
Console.WriteLine(memberName + " was called.");
}
Run Code Online (Sandbox Code Playgroud)
将编译为:
public void DoProcessing()
{
LogCall("DoProcessing");
}
public void LogCall(string memberName)
{
Console.WriteLine(memberName + " was called.");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5958 次 |
| 最近记录: |