首页 > 代码库 > 自动属性
自动属性
2.0的时候我们定义属性要这么定义
private int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
到3.0的时候 新加了自动属性可以这么定义了
public int Age {get;set;}
public int Age {get;private set;}
最终生成的il代码都是一样的,上面的事情编译器帮做了。
CLR说,自动实现的属性(AIP),它是为了封装一个支持字段而创建的一个属性。
不能用,尽量不用
第一、字段属性可以包含初始化,而AIP必须在构造中显式初始化每个AIP
第二、AIP编译时会每次重新生成新的名字
第三、调试时不好加断点
还有,生成AIP必然是可读可写,可控性不高!!!
自动属性定义了一个你不能访问到的内部私有变量,然后用这个内部变量来存储和读取你使用的值,跟你自己定义一个内部私有变量实现属性的访问是一样的,区别在于不用写那么多代码了,不用自己定义私有变量了。这种写法无法实现业务需求,比如赋值的时候要求不能小于10,那就无法实现了。
自动属性
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。