首页 > 代码库 > 2016-11-24(C#定制特性)(未完)

2016-11-24(C#定制特性)(未完)

--------------------------------------------定制特性---------------------------------------------------

技术分享

//上面 这段话 是在说  可以创建一个 关键字 定义 我们自己的规则? 

C#中的定制特性被放在 上面  [定制特性名称(,)]来表示 某某 用了这个定制特性。  

还有个前缀,说明 这个定制特性是用在什么样的数据上 比如类 返回值 结构体 ..等等等 不写的话 他会自己判断 用法 [method:定制特性(,)]

一个特性只是一个类型的实例 而所有特性都继承自 System.Attribute

一个特性的 构造器参数是定位参数 是必须要穿进去的  设置字段或者属性的参数叫做命名参数是可选的

例如 [DllImport("Ternel32",CharSet=CharSet.AUto,SetLastError=true)]

 

定义自己的 特性

开一个命名空间 让自己的特性继承自Attribute 然后类名后缀要交Attribute  public 构造器访问修饰符 一个以上的显示构造器

如果 假如 我们的定制特性指向应用在 枚举上面 那就在上面再加上 枚举的定制特性   

AttributeUsage[AttributeTarget.Enum,Inherited=false];

可以告诉编译器 我们定义的类型 应用到 什么类型上。  技术分享

技术分享

//1>没指定类型  应用于所有元素 2>对一个目标只应用一次 3>可以被继承

 

2016-11-24(C#定制特性)(未完)