在C#里Property是属性,Attribute是特性。它们的概念是不同的,充其量就是中文的神翻译问题。编程
1)属性是指类体里用get或set封装好的属性。属性是面向对象的理论范畴。好比说一个盒子,盒子的高度,长度,都是这个盒子的属性。在C#中实现的时候能够经过GET SET 封装。编程语言
2)特性是指应用于类,字段,方法,接口的进一步说明,用专业的术语就是给类,字段,方法,接口补充元数据,说的再白一点就是给它们打上标记,打了标记后编译器就知道如何来编译它。特性是属于编程语言层面的东西。好比2个相同的类,为了表示这2个类不彻底相同或者有差别。这时候就要针对这两个类加一些特性。spa
来看个例子吧,加深下印象:翻译
1 [Serializable] // 这是Attribute,打上该标记的类说明能够被序列化 2 class Order 3 { 4 protected internal Single Price { get; set; } // 这是Property 5 6 [Obsolete("此方法已过期,请改用xxx.")] // 打上该标记说明此方法是过期的 7 public Single GetPrice() 8 { 9 return default(Single); 10 } 11 }