8. Automatic Properties(自动属性)

【返回目录】

在之前的一些示例代码中我们看到了,过去我们书写C#类的属性时都是采用如下的方式:

   1: private string _name = String.Empty;
   2: public string Name
   3: {
   4:     get { return this._name; }
   5:     set { this._name = value; } // Optional.
   6: }

C#的属性从一开始就是这样的基本形式,尽管Visual Studio提供了代码自动生成功能可以减轻我们编写这些简单重复的代码的痛苦,但这样的形式的确增大了代码量,有没有什么更方便的形式呢?

C# 3.0给我们带来了自动属性的概念,其代码更显简洁,而简洁不正是C#一贯追求的风格之一么,那么我们来看看自动属性是什么样子的吧:

   1: public string Name { get; set; }

上面这行简短的代码和我们最初给出的属性形式是等效的,对于其自身不存在逻辑的属性都可以这样来编写,当然也可以继续采用原先的方式,其实C# Compiler在预编译时会将自动属性还原为原先的属性形式,只是这部分工作由编译器来完成,从而减轻了程序员的工作量。在一些情况下,例如你想让这个属性成为只读或者对其写操作进行一些控制,那么你可以在set关键字前面加上访问修饰符,例如:

   1: public string Name { get; private set; }

这个属性就是只读的了,是不是很方便呢?那么C# 3.0到底能为我们带来多少令人激动的开发体验呢,这就得靠大家的力量来一起发掘了!

posted @ 2007-11-30 11:19  麦机长  阅读(897)  评论(2编辑  收藏  举报