一,实体类属性访问存在两种写法:
//第一种写法 private int _id; public int Id { set { _id = value; } get { return _id; } } //第二种写法 public int Id { set; get; }
二,那以上两种写法有什么区别呢?
两种写法在“封装”上是没什么区别的,并且在在反编译时发现,他们生成的也是一样,因为第二种只是一种简写,实际上编译器会帮你加一个私有成员。
三,那第一种写法的意义在哪里?
private int _name; public int Name { get { return _name; } set { // 这里加入了验证代码 if (value < 0) throw new Exception("value", "输入值不能小于0"); _name = value; } }
如上例子,当属性要验证的时候,这种写法灵活性好