1、特性的基本概述
Attribute(特性),
公共语言运行时容许添加相似关键字的描述声明,叫作attributes, 它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一块儿,能够用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。
2、特性的应用
(1)在.NET中,Attribute被用来处理多种问题,好比序列化、程序的安全特征、防止即时编译器对程序代码进行优化从而代码容易调试等等。
定制的特性本质上是为一个类的元素上去添加附加信息,并在运行其经过反射获得该附加信息(在使用数据实体对象时常常用到)
(2)Attribute做为编译器的指令时的应用:
Conditional:起条件编译的做用,只有知足条件,才容许编译器对它的代码进行编译。通常在程序调试的时候使用。
DllImport:用来标记非.NET的函数,代表该方法在一个外部的DLL中定义。
Obsolete:这个属性用来标记当前的方法已经被废弃,再也不使用了。
例:若是在一个程序元素前面声明一个Attribute,那么就表示这个Attribute被施加到该元素上,下面的代码:
[DllImport]施加到MessageBox函数上。
[Conditional]施加到DisplayRuntimeMessage方法。
[Obsolete]施加到DisplayDebugMessage方法上
3、补充说明
Attribute就是一个类,因此DllImport也是一个类,Attribute类是在编译的时候被实例化的,而不是像一般的类那样在运行时候才实例化。 Attribute实例化的时候根据该Attribute类的设计能够带参数,也能够不带参数: DllImport就带有"User32.dll"的参数。 Conditional对知足参数的定义条件的代码进行编译,若是没有定义DEBUG,那么该方法将不被编译。 Obsolete代表了DispalyDebugMessage方法已通过时了,它有一个更好的方法来代替它,当咱们的程序调用一个声明了Obsolete的方法时,那么编译器会给出信息。