C#获取当前方法的命名空间、类名称、方法名称以及方法的参数信息
C#获取当前方法的命名空间、类名称、方法名称以及方法的参数信息
- 输出示例
- 模块示例
输出示例
获取信息:WindowsFormsApp1.Form1.button1_Click(System.Object sender,System.EventArgs e)
引发的异常:“System.IndexOutOfRangeException”(位于 WindowsFormsApp1.exe 中)
异常信息: 在 WindowsFormsApp1.Form1.button1_Click(Object sender, EventArgs e) 位置 D:\Demo\WindowsFormsApp1\WindowsFormsApp1\Form1.cs:行号 32
模块示例
private void button1_Click(object sender, EventArgs e)
{try{string info = GetCurrentMethodName(MethodBase.GetCurrentMethod());Console.WriteLine("获取信息:" + info);int[] i = new int[1];Console.WriteLine(i[3]);}catch (Exception ex){Console.WriteLine("异常信息:" + ex.StackTrace);}
}public static string GetCurrentMethodName(MethodBase methodBase)
{StringBuilder builder = new StringBuilder();builder.Append($"{methodBase.DeclaringType.Namespace}.{methodBase.DeclaringType.Name}.{methodBase.Name}(");for (var i = 0; i < methodBase.GetParameters().Length; i++){var parameter = methodBase.GetParameters()[i];builder.Append($"{parameter.ParameterType} {parameter.Name}");if (i < methodBase.GetParameters().Length - 1){builder.Append($",");}}builder.Append($")");return builder.ToString();
}