--------------------------------------------定制特性---------------------------------------------------
//上面 这段话 是在说 可以创建一个 关键字 定义 我们自己的规则?
C#中的定制特性被放在 上面 [定制特性名称(,)]来表示 某某 用了这个定制特性。
还有个前缀,说明 这个定制特性是用在什么样的数据上 比如类 返回值 结构体 ..等等等 不写的话 他会自己判断 用法 [method:定制特性(,)]
一个特性只是一个类型的实例 而所有特性都继承自 System.Attribute
一个特性的 构造器参数是定位参数 是必须要穿进去的 设置字段或者属性的参数叫做命名参数是可选的
例如 [DllImport("Ternel32",CharSet=CharSet.AUto,SetLastError=true)]
定义自己的 特性
开一个命名空间 让自己的特性继承自Attribute 然后类名后缀要交Attribute public 构造器访问修饰符 一个以上的显示构造器
如果 假如 我们的定制特性指向应用在 枚举上面 那就在上面再加上 枚举的定制特性
AttributeUsage[AttributeTarget.Enum,Inherited=false];
可以告诉编译器 我们定义的类型 应用到 什么类型上。
//1>没指定类型 应用于所有元素 2>对一个目标只应用一次 3>可以被继承
,