如何获取当前工作的cs文件的文件名和当前类的名称

use*_*445 8 c#

假设我正在使用Welcome.cs文件.在构造函数中,我想打印"欢迎".但是,如果我在HelloWorld.cs中放入相同的代码,它应该打印HellowWorld.我怎么做?

Sch*_*out 14

你可以试试

string thisFile = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName(); 
Run Code Online (Sandbox Code Playgroud)

  • 这是做到这一点的方法.请注意,"true"表示包含调试信息.这仅适用于调试版本,它会发出包含源信息的`pdb`文件. (2认同)

Car*_*ras 8

试试这个来获取文件名:

string currentFile = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName(); 
Run Code Online (Sandbox Code Playgroud)

要获得当前行:

int currentLine = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileLineNumber(); 
Run Code Online (Sandbox Code Playgroud)


NDJ*_*NDJ 7

如果我理解正确的话,试试吧 this.GetType().Name


ill*_*ant 7

如何列印

[ 当前文件名 - 方法名 - 行号 ]?

private static void Log(string text,
                        [CallerFilePath] string file = "",
                        [CallerMemberName] string member = "",
                        [CallerLineNumber] int line = 0)
{
    Console.WriteLine("{0}_{1}({2}): {3}", Path.GetFileName(file), member, line, text);
}
Run Code Online (Sandbox Code Playgroud)

测试:

Log("Test");
Run Code Online (Sandbox Code Playgroud)

输出:

Program.cs_Main(11):测试