使用调用者信息属性对性能的影响
本文关键字:性能 影响 属性 调用者 信息 | 更新日期: 2023-09-27 18:09:55
我正试图找到一种有效的方式来记录方法名称,而不是速度和可维护性。我猜,在。net 4.5中,除了速度部分外,调用者信息属性就是为了这个目的而暴露的。我觉得这些只是使用System.Reflection.MethodBase.GetCurrentMethod()
或stackTrace.GetFrame(1).GetMethod().Name
的语法糖(从这里得到的)。(或者)这些方法是否也有性能上的好处?
在c#中,是否有一种方法可以在编译时获得方法名(就像在c++中一样)?
调用者信息属性导致c#编译器在调用站点提供调用者的名称。这发生在编译时,不涉及反射。
public void DoProcessing()
{
LogCall();
}
public void LogCall([CallerMemberName] string memberName = "")
{
Console.WriteLine(memberName + " was called.");
}
将被编译为:
public void DoProcessing()
{
LogCall("DoProcessing");
}
public void LogCall(string memberName)
{
Console.WriteLine(memberName + " was called.");
}