C# 調用者信息特性(Attribute)

.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();
        }
相關文章
相關標籤/搜索