首页 > 代码库 > C#回顾 –6.特性
C#回顾 –6.特性
1.特性是什么?Attribute用来对类、属性、方法等标注额外的信息,贴一个标签(附着物) 通俗:给 类 或 类成员 贴一个标签,就像航空部为你的行李贴一个标签一样 个人理解,特性就是修饰对象元数据的修饰符。
图中的 1.是特性 2.是访问修饰符 3.声明修饰符 4.数据类型 5.变量名 6.变量数据值其中1、2、3、4、5就是元数据,用来描述数据(6)的数据。
2.特性到底是什么?如上面的 Obsolete ,会不会也是一个如 public 、 static 这样类似的修饰符呢,我们且看看反编译后的中间语言。
意料之外,我们看到了上面的2、3、4、5,而1(特性)怎么跑到里面去了,且是一种看不懂的东东,反正我们知道了不是类似的修饰符。
然后我们接着在vs里面把光标移到 Obsolete 上按F12,如:
原来只是一个继承了 Attrbute 的一个类(class)。那么上面我们看不懂的部分应该就是这个 ObsoleteAttribute 类的实例化了。
我们来回答上面问题:特性到底是什么?特性只是一个类而已。
3.自定义特性
我们看到上面系统特性 Obsolete 上面还有特性,如:Serializable、AttributeUsage、Camvisible等。像这种特性我们称之为“元数据的元数据”(元元数据)。1.我们分别来解释性上面的三个特性。Serializable:表示类型支持序列化。ComVisible:微软定义“控制程序集中个别托管类型、 成员或所有类型对COM的可访问性”。AttributeUsage:这个比较重要了,基本上每个特性定义都用到了它。它就是用来表示当前这个特性可用于哪些对象。如:类、方法、属性...等等。(只需要用到这个我们就可以自定义特性了)
来自为知笔记(Wiz)
C#回顾 –6.特性
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
Attribute用来对类、属性、方法等标注额外的信息,贴一个标签(附着物)
通俗:给 类 或 类成员 贴一个标签,就像航空部为你的行李贴一个标签一样
个人理解,特性就是修饰对象元数据的修饰符。
图中的
1.是特性 2.是访问修饰符
3.声明修饰符 4.数据类型
5.变量名 6.变量数据值
其中1、2、3、4、5就是元数据,用来描述数据(6)的数据。
如上面的 Obsolete ,会不会也是一个如 public 、 static 这样类似的修饰符呢,我们且看看反编译后的中间语言。
意料之外,我们看到了上面的2、3、4、5,而1(特性)怎么跑到里面去了,且是一种看不懂的东东,反正我们知道了不是类似的修饰符。
然后我们接着在vs里面把光标移到 Obsolete 上按F12,如:
原来只是一个继承了 Attrbute 的一个类(class)。那么上面我们看不懂的部分应该就是这个 ObsoleteAttribute 类的实例化了。
我们来回答上面问题:特性到底是什么?特性只是一个类而已。
3.自定义特性
我们看到上面系统特性 Obsolete 上面还有特性,如:Serializable、AttributeUsage、Camvisible等。像这种特性我们称之为“元数据的元数据”(元元数据)。
1.我们分别来解释性上面的三个特性。
Serializable:表示类型支持序列化。
ComVisible:微软定义“控制程序集中个别托管类型、 成员或所有类型对COM的可访问性”。
AttributeUsage:这个比较重要了,基本上每个特性定义都用到了它。它就是用来表示当前这个特性可用于哪些对象。如:类、方法、属性...等等。(只需要用到这个我们就可以自定义特性了)
来自为知笔记(Wiz)
C#回顾 –6.特性
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。