C#1.0:声明一个只读属性。
string name;
public string Name{get{return name;}}
C#2.0:增加了属性私有方法,如果有一个属性只可以在本类内赋值,其他类为只读的情况下C#1.0是做不到的。
string name;
public string Name{get{return name;}private set{ name = value;}}
C#3.0:增加了自动实现属性。这样可以大大简化代码,不再有任何变量与属性关联,从而在项目中处处使用属性,增强了数据的一致性。
public string Name { get; private set; }
C#4.0:增加了readonly关键字,这个关键字主要作用体现在C#1.0和2.0的属性上,因为3.0已经把属性关联的变量简化掉了,所以只要不写set方法就能做到只读。
readonly string name;
public string Name { get { return name; } private set { name = value; } }//报错,无法对只读的字段赋值(构造函数或变量初始值指定项中除外)