【发布时间】:2023-03-31 09:53:02
【问题描述】:
使用 Console.Writeline() 时,当前函数的名称是否有占位符?
【问题讨论】:
-
在 Console.WriteLine 中是否有任何表示当前执行方法/属性名称的“魔法标记”。
-
这正是我的意思。对于不清楚的地方,我深表歉意。
标签: c# console.writeline
使用 Console.Writeline() 时,当前函数的名称是否有占位符?
【问题讨论】:
标签: c# console.writeline
我相信这就是您要寻找的:
using System.Diagnostics;
StackTrace stackTrace = new StackTrace();
Console.WriteLine(stackTrace.GetFrame(1).GetMethod().Name);
【讨论】:
在反射中,您可以选择 MethodBase.GetCurrentMethod()。
【讨论】:
MethodBase.GetCurrentMethod 快 5 倍以上(假设您每次都创建一个 StackFrame 的新实例。这是一个相当虽然是粗略的微基准!-不要太认真!
除非您想使用反射,否则不会。但是,C# 5 将包含一个名为“调用者信息属性”的新功能,它将在编译时插入信息。见http://bartwullems.blogspot.com/2012/02/c-5-caller-info-attributes.html
【讨论】: