C# 呼叫者資訊特性(Attribute)
阿新 • • 發佈:2018-11-12
.NET 4.5中引用了三種特性(Attribute), 該特性允許獲取呼叫者的當前編譯器的執行檔名、所在行數與方法或屬性名稱。
名稱空間
System.Runtime.CompilerServices
包含下面3種特性的說明如下:
CallerFilePath : 允許獲取包含呼叫方的原始檔的完整路徑。 這是編譯時的檔案路徑。
CallerLineNumber: 允許獲取原始檔中呼叫方法的行號。
CallerMemberName: 允許獲取方法呼叫方的方法或屬性名稱。
呼叫示例
以上的特性, 都規定該特性只能應用於引數中, 並且需要提供預設行參, 如下:
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)); }
呼叫該方法的輸出, 則輸入編譯執行的檔案、行號、方法或屬性名。
static void Main(string[] args) { ShowInfo(); //輸出: C:\Users\admin\source\repos\Call\Call\Program.cs - 14 - Main Console.ReadKey(); }