技术开发 频道

C#3.0 为我们带来什么— 自动属性


【IT168技术文档】

public int ID { get; protected set; } public string Name { get; set; }
  这是接口内声明的属性么?
  no,这也可以是类的属性,自动属性。
  如果说c#3.0最大的改变是什么,那就是编码方式更人性化,程序员可以变的更懒。自动属性也是这一特征的具体表现。
  对比两段代码
  C# 2.0
public class a { private int _id; private string _name; public int ID { get { return _id; } protected set { _id = value; } } public string Name { get { return _name; } set { _name = value; } } public a(int id) { this._id = id; } }
  C# 3.0
public class b { public int ID { get; protected set; } public string Name { get; set; } public b(int id) { this.ID = id; } }
  在c#中是推荐使用属性来代替public 变量的。我们在项目中也尽量将需要公开的字段定义为属性,代之而来的就是上面代码的冗繁。不管你对这个属性有没有特殊处理,都需要先定义一个私有变量,并将其在get,set方法中返回或赋值。使得代码量大量增加,阅读难度也增加。
随3.0而来的自动属性使我们可以方便的定义一个简单属性(不需要对field进行特殊处理的),他所使用的私有变量由系统来生成。工作量减少,阅读难度降低。

  下面来看看编译器到底为我们做了什么。
  使用IL Disassembler来看看到底发生了什么。
0
相关文章