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模式下)