属性与特性的区别

属性与特性的区别:

首先在网上找个例子来解释下特性:

假设有一天你去坐飞机,你就必须提前去机场登机处换登机牌。登机牌就是一张纸,上面写着哪趟航班、由哪里飞往哪里以及你的名字、座位号等等信息,其实,这就是特性。它不需要你生理上包含这些属性(人类出现那会儿还没飞机呢),就像上面的HumanBase类没有IsSerializable这样的属性,特性只需要在类或方法需要的时候加上去就行了,就像你不总是在天上飞一样。

当我们想知道HumanBase是不是可序列化的,可以通过:

   1: static void Main(string[] args)
   2: {
   3:     Console.WriteLine(typeof(HumanBase).IsSerializable);
   4:  
   5:     Console.ReadLine();
   6: }

拿到了登机牌,就意味着你可以合法地登机起飞了。但此时你还不知道你要坐的飞机停在哪里,不用担心,地勤人员会开车送你过去,但是他怎么知道你是哪趟航班的呢?显然还是通过你手中的登机牌。所以,特性最大的特点就是自描述。

既然是起到描述的作用,那目的就是在于限定。就好比地勤不会把你随便拉到一架飞机跟前就扔上去了事,因为标签上的说明信息就是起到限定的作用,限定了目的地、乘客和航班,任何差错都被视为异常。如果前面的HumanBase不加上Serializable特性就不能在网络上传输。

特性就是对所修饰的对象进行自我描述能够做什么事。而什么事就由特性说了算,没有这个特性就不能做特性描述的事情了。而属性就是是对象里的一个变量而已,可以被访问。

 

 

 

posted @ 2009-06-02 00:47  潇潇息一去不复返  阅读(5329)  评论(2编辑  收藏  举报
努力才能前进,勤耕博客才能看远