【问题标题】:How to print function name without hard code string? [duplicate]如何打印没有硬代码字符串的函数名称? [复制]
【发布时间】:2020-03-13 06:55:51
【问题描述】:

c语言有像FILE/LINE这样的宏来打印文件名和代码行号

那么 C# 语言是如何实现相同目标的,是否可以做到,或者需要汇编包?

非常感谢。

【问题讨论】:

  • 您的问题标题和问题正文似乎不一致。你能让他们问同样的问题吗?
  • 你的意思是Caller Information
  • @Sweeper 看,我认为 OP 的意思是 nameof() 问题标题。
  • 我相信这是一个 x-y-问题。想做什么? (换句话说:你需要文件/行做什么?)

标签: c# function printing line


【解决方案1】:

您可以使用StackFrame,但我会谨慎使用此操作,它会以性能为代价,并且可能会在发布时给您带来问题。

表示堆栈跟踪,它是一个或一个的有序集合 更多堆栈帧。

var stackTrace = new StackTrace(0, true);
var sf = stackTrace.GetFrame(0);
Console.WriteLine("FileName: {0}", sf.GetFileName());
Console.WriteLine("Line Number:{0} ",sf.GetFileLineNumber());
Console.WriteLine("Function Name:{0}",sf.GetMethod ());

【讨论】:

    猜你喜欢
    • 2021-12-29
    • 2015-09-21
    • 2011-05-21
    • 1970-01-01
    • 2021-06-12
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多