首页 > 其他 > 详细

自动属性

时间:2014-11-22 23:20:40      阅读:519      评论:0      收藏:0      [点我收藏+]

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,那就无法实现了。

自动属性

原文:http://net5x.blog.51cto.com/7900145/1581261

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!