1. 程式人生 > >C# 呼叫者資訊特性(Attribute)

C# 呼叫者資訊特性(Attribute)

.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();
        }