C#特性以前的時候,用過C#中的特性,但只是會用,什麼原理,有什麼用這些問題不清楚,今天就騰出時間,學習了一下。
C#中的特性使用Attribute描述。在使用時,就像是java中的批註一樣。不過C#使用中括號。特性用來描述我們的數據。編譯器能夠識別這些特性,以附加信息的形式存放在生成的元數據中,供clr使用。
下邊看一個簡單的應用view plainprint?
static void Main(string[] args)
{ DisplayRunningMsg();DisplayDebugMsg();Trace("方法執行到結尾了!!");Console.Read();
} [DllImport("User32.dll")] public static extern int MessageBox(int hParent, string msg, string Caption, int type);[Conditional("DEBUG")] private static void DisplayRunningMsg()
{ Console.WriteLine("This is debug");Console.WriteLine("開始運行Main子程序。當前時間是"+DateTime.Now);}
[Conditional("DEBUG")] [Obsolete] private static void DisplayDebugMsg()
{ Console.WriteLine("該方法已經廢棄啦!!!");}
DllImport特新允許我們引入一個外部的dll,下邊做一個函數的聲明,我們就可以調用了。
Conditional屬性表示在該種條件下就執行下邊的代碼 所以[Conditional("DEBUG")]此種標識的方法就只有在調試的時候纔會在執行。 [Obsolete]特性標記該方法已經廢棄。
運行上述代碼輸出(在debug模式下)