TOC

This article has been localized into Chinese by the community.

C# 3.0:

自动属性

说起面向对象编程的一个痛点,那就是为private成员设置public属性的时候。那会有很多无聊的工作,只是为了给private成员相应的增加一套简单的get和set方法。没有什么值得好说的,就像这样:

private string name;

public string Name
{
    get { return name; }
    set { name = value; }
}

对于这样的简单属性,我们还不如就把它声明为public的,那样就可以直接使用它了,无需多增加一个属性层次的东西。然而,OOP的规则告诉我们就是要这样做。我们中的大多数人也会因此抵御把它简单化的诱惑。有了C#3.0,我们无需这样麻烦了。上面的那个例子可以写成这样:

public string Name
{
    get;
    set;
}

或者再简洁些,像这样:

public string Name { get; set; }

无需成员的声明,也不需要另外写代码去get或set它的值。所有的工作都交给编译器自动处理,也就是自动生成一个private的成员以及分别读取和设定它的值的那些最基本的代码,以完成get和set的操作。从外部来看,这就是一个普通的属性的模样。你因此不用去敲那么多次的键盘,你写的类看起来也没那么冗长。话说回来,你仍然可以用老的方法去写,就像前面第一个例子的那样。这里说的只是一个你可以应用的特别功能,只要你觉得喜欢。


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!