C#中看到有些程序代码用中括号[ ]括起来,后来查阅才知道是特性。特性和属性是两个不同的东东。
比如一张飞机票的属性
{
长;
宽;
。。。
}
那特性是什么呢?比如飞机票上写着的的东西
{
航班;
日期;
目的地;
。。。
}
首先,特性也是类。
是起到描述的作用,目的就是在于限定。不同于其它类的是,特性都必须继承自System.Attribute类,否则编译器如何知道谁是特性谁是普通类呢。当编译器检测到一个类是特性的时候,它会识别出其中的信息并存放在元数据当中,仅此而已,编译器并不关心特性说了些什么,特性也不会对编译器起到任何作用,正如航空公司并不关心每个箱子要去哪里,只有箱子的主人和搬运工才会去关心这些细节。
特性的定义如:
public sealed class
EditorBrowsableAttribute : Attribute
而使用时:
[EditorBrowsable(EditorBrowsableState.Never)
]
省略了Attribute,运行时,编译器会自己添加。
更详细的介绍见参考文献:http://www.kuqin.com/dotnet/20080628/10196.html