如何打印函数名称而不使用硬编码字符串?

12 浏览
0 Comments

如何打印函数名称而不使用硬编码字符串?

C语言有类似FILE/LINE的宏来打印文件名和代码行号。那么C#语言如何实现相同的目标呢?是否可以做到,还是需要使用程序集包?非常感谢。

0
0 Comments

问题出现的原因是想要在不硬编码字符串的情况下打印函数名称。解决方法是使用StackTrace类来获取函数名称,并使用GetMethod()方法来获取函数名称。以下是解决方法的代码:

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 ());

然而,需要注意的是,使用StackTrace类会降低性能,并且在发布时可能会遇到问题。

0