.NET 4.5中引用了三種特性(Attribute), 該特性容許獲取調用者的當前編譯器的執行文件名、所在行數與方法或屬性名稱。spa
命名空間code
System.Runtime.CompilerServices orm
包含下面3種特性的說明以下:blog
CallerFilePath : 容許獲取包含調用方的源文件的完整路徑。 這是編譯時的文件路徑。編譯器
CallerLineNumber: 容許獲取源文件中調用方法的行號。string
CallerMemberName: 容許獲取方法調用方的方法或屬性名稱。it
調用示例編譯
以上的特性, 都規定該特性只能應用於參數中, 而且須要提供默認行參, 以下:class
public static void ShowInfo( [CallerFilePath] string file = null, [CallerLineNumber] int number = 0, [CallerMemberName] string name = null) { Console.WriteLine(string.Format("{0} - {1} - {2}", file, number, name)); }
調用該方法的輸出, 則輸入編譯執行的文件、行號、方法或屬性名。file
static void Main(string[] args) { ShowInfo(); //輸出: C:\Users\admin\source\repos\Call\Call\Program.cs - 14 - Main Console.ReadKey(); }