一.第一种方式
[DebuggerStepThrough] //跳过调式
static void Print(string str,
[CallerFilePath] string filePath = "",//文件路径
[CallerLineNumber] int num = 0, //行号
[CallerMemberName] string name = "") //方法名
{
Console.WriteLine(str);
Console.WriteLine("filePath {0}", filePath);
Console.WriteLine("Line {0}", num);
Console.WriteLine("Call from {0}", name);
}
二.第二种方式:
1.获取行号
/// <summary>
/// Get line number of code dynamically
/// </summary>
/// <param name="skipFrames">number of frames to skip</param>
/// <returns>line number of code after skipping frames</returns>
public static int GetCodeLineNum(int skipFrames)
{
StackTrace st = new StackTrace(skipFrames, true);
StackFrame fram = st.GetFrame(0);
int lineNum = fram.GetFileLineNumber();
return lineNum;
}
2.获取文件路径
/// <summary>
/// Get file name information of code dynamically
/// </summary>
/// <param name="skipFrames">number of frames to skip</param>
/// <returns>file name information of code after skipping frames</returns>
public static string GetCodeFileName(int skipFrames)
{
StackTrace st = new StackTrace(skipFrames, true);
StackFrame fram = st.GetFrame(0);
string source = fram.GetFileName();
return source;
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/279493.html