一、引子
我在网上看到一段关于属性和特性的描述,很好,所以把它记录下来以供自己学习用。
原网址:http://www.cnblogs.com/laeb/archive/2007/01/29/633858.html
Attributes:讨论的是主题的天性。比如,人是人类,这里的人类就是一个特性。
Properties:讨论的是主题的所有物中的内容、状态等。比如,人能说话思考,这里的是否能说话思考就是一个属性。
在面向对象中,特性的含义应该是"是什么",而属性的含义应该是"有什么"。比如:Serializable表示一个实例对象可序列化,这是一个特性。它会告诉.NET运行时这个类是能够特性来表示序列化能力的,并且又不需要使用通过它所暴露的属性就能够完全表示这个类有可序列化能力。
二、概念
(1)特性
在MSDN中:公共语言运行时允许添加类似关键字的描述声明,它对程序中的元素进行标注(包括字段、方法、属性和类型等);Attribute和.NET FrameWork文件的元数据保存在一起,可以用来在运行时描述代码,或者在程序运行的时候影响应用程序的行为。其实,定制特性Attribute本质上是一个类,主要为目标元素提供关联附加的信息,并在运行期间以反射的方式来获取附加信息。
(2)属性
属性是面向对象编程的基本概念,提供了对私有字读的访问封装,在C#中以Get和Set访问器方法实现对可读和可写属性的操作,提供了安全和灵活的数据访问。
待续...