2008-10-15 92 views
7

我怎樣才能設置一個默認值,以定義如下的屬性:如何使用VS2008中的「短風格」屬性設置默認值(自動屬性)?

public int MyProperty { get; set; } 

即在VS2008(代碼片段),使用「丙」 [標籤] [標籤]。

是否有可能不回落的「老辦法」?:

private int myProperty = 0; // default value 
public int MyProperty 
{ 
    get { return myProperty; } 
    set { myProperty = value; } 
} 

感謝您的時間。 此致敬禮。

+0

作爲一個側面說明,你並不需要一個屬性設置爲正常的缺省值(如int i = 0)。這種情況會在類實例化時自動發生。 – 2008-10-15 21:44:08

+0

好吧,我選int,因爲是我想到的第一件事......但我想設置一個默認值給任何類的屬性(字符串,自定義類等)。 – 2008-10-15 22:06:13

回答

9

只需在構造函數中設置「default」值即可。

public class Person 
{ 
    public Person() 
    { 
     this.FirstName = string.Empty; 
    } 

    public string FirstName { get; set; } 
} 

此外,它們被稱爲自動屬性。

+0

FWIW,設置默認值是低效的if你碰巧改變了你的任何構造函數中的值。 在我工作的公司,我們實際上認爲它是一種「代碼味道」,它具有默認值,因爲那麼我們必須去查看它是否在任何構造函數中被覆蓋。 – 2008-10-15 23:21:15

+0

感謝大衛,請記住 – 2008-10-15 23:24:37

2

我的偏好是「做舊的事情」,而不是構造函數中的init。如果您稍後添加另一個構造函數,則必須確保從其中調用第一個構造函數,否則您的屬性將被初始化。

0

[DefaultValue(「MyFirstName」)] public string FirstName {get;組; }