【问题标题】:Simple Syntax for Declaring properties with a starting value使用起始值声明属性的简单语法
【发布时间】:2013-05-03 00:56:43
【问题描述】:

到目前为止,我见过的用于声明只能从我见过的类内部设置的属性的最短代码是:

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;}}

但我想知道我是否可以只用一个代码行来编写它,因为我将编写许多这样的属性,而且我不想每个都有重复的行。

【问题讨论】:

  • 使用类ctor来初始化prop值怎么样?
  • 将是相同的,每个属性两行。当类变大时,这会导致编码错误。
  • 构造函数调用初始化。我将它分开是因为许多构造函数重载需要特定的序列。
  • 属性值是唯一的还是只是想更改类型的默认值?
  • 独一无二。实际上我希望它们是常量,但是它们是类和委托,不能将它们声明为常量。

标签: c# properties syntactic-sugar


【解决方案1】:

不。自动属性总是默认为其默认值。

最好的办法是在构造函数中设置它们,或者不使用自动属性。

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

【讨论】:

    猜你喜欢
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 2013-08-17
    • 2011-02-02
    • 2011-03-04
    • 1970-01-01
    • 2011-08-20
    相关资源
    最近更新 更多