2013-05-08 25 views
4

好到目前为止,我已经看到了声明,只能从我所看到的阶级内部设置属性最短的代码声明性质是:简单的语法与初始值

public T Property {get; private set;} 

但如果我想用一个起始值(这不是该类型的默认值)声明它,怎么办?

其实我这样做:

public T Property {get; private set;} 
private void Initialize() {Property = Value; } 

另一种选择是:

private T _Property = Value; 
public property {get {return _Property;}} 

但我想,如果我可以编写只有一个代码行,因为我会写许多这些属性,我不想为每个属性重复一行。

+1

如何使用class ctor初始化prop值? – 2013-05-08 17:28:21

+0

会是一样的,每个属性两行。当班级增长的时候会导致编码错误。 – 2013-05-08 17:35:28

+0

构造函数调用Initialize。我已经分开它,因为许多构造函数重载需要特定的序列。 – 2013-05-08 17:36:44

回答

4

没有。自动属性总是默认为默认值。

最好的办法是把它们设置在构造函数中,否则就不要使用自动属性。

public T Property {get; private set;} 
public MyClass() { 
    Property = Value; 
}