Property和Attribute的区别是什么?
中文翻译上都是“属性”,实际上两者都是大相径庭的。Attribute属于OOA/OOD的概念,而Property属于编程语言中的概念。Attribute是Microsofe .NET FRAMEWORK 文件的元数据,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。Property属性是面向对象编程的基本概念,提供了对私有字段的访问封装,在C#中以get和set访问器方法实现时可读可写属性的操作,提供了安全和灵活的数据访问封装。
可以说两者没有可比性,只要记住Attribute是派生于System.Attribute类之下,它的主要作用是描述,比如为了描述某个方法是来自外部的DLL,写如下代码,值就是一个Attribute,它是一个描述
[DLLImport("User32.dll")]
而Property是指编程过程中的字段,即类的成员,如下:
private int hour ;//定义私有变量“小时”,外部是访问不到的
public int Hour//定义Hour程序接口
{
get { hour=value;}
set{ return hour;}
}