一、自定义特性
特性是一种特殊的类。
要点:
- 用户自定义的特性类叫作自定义特性。
- 所有特性类都派生自 System.Attribute
1、声明自定义特性
声明:
public sealed class MyAttributeAttribute : System.Attribute
{
...
}
由于特性持有目标的信息,所有特性类的公有成员只能是:
- 字段
- 属性
- 构造函数
2、使用特性的构造函数
构造函数的显式隐式声明定义,以及重载等等,规则跟其他类一样。
public MyAtrributeAttribute(string desc, string ver)
{
...
}
3、指定构造函数
[MyAttribute("Holds a value")]//使用一个字符串的构造函数
public int MyField;
[MyAttribute("Version 1.3", "Galen Daniel")]//使用两个字符串的构造函数
public void MyMethod()
{
...
}
//MyAttribute:特性类
特性构造函数要点:
- 构造函数的实参必须是在编译时能确定值的常量表达式。
- 如果构造函数没有参数,代码如下:
[MyAttr]
class SomeClass...
[MyAttr()]
class OtherClass...
4、使用构造函数
//命令语句
MyClass mc = new MyClass("Hello", 5);
//声明语句
[MyAttribute("Holds a value")]
特性类和其他类,比较构造函数的使用:
- 命令语句的实际意义是:“在这里创建新的类。
- 声明语句的意义是:“这个特性和