property 和 attribute 的区别?

  property 和 attribute 都被翻译为“属性”,实际上两种都是大相径庭的。它们来源于两个不同的领域,attribute属于OOA/OOD的概念,而property属于编程语言中的概念。

  attributy是Microsoft.net Framework文件的元数据,可以用来运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。

  property属性是面向对象的基本概念,提供了对私有字段的访问封装,在C#中以get和set访问器方法实现对可读可写属性的操作,提供了安全和灵活的数据访问封装。

  可以说两种没有可比性,但attribute是派生于System、attribute类之下主要作用是描述,比如描述某个方法是来之外部的dll,写如下代码,就是一个attribute,它是一个描述(或者说是声明):

 

 

[DllImport(User32.dll)]

 

 

而property是指编程过程中的字段、即类的成员,如下

 

传统写法:
private   int  _hour;
public   int  Hour
{
  
get  {  return  _hour; }
  
set  { _hour  =  calue; }
}

.net 4中也可以写成
public   int  Hour{ get ; set ;}

 

 

你可能感兴趣的:(attribute)