2010-11-15 67 views

回答

1

好構造函數是最好的。你怎麼也可以調用一個方法。

檢查下面的鏈接過於 Initializing C# auto-properties

+0

這很好用,特別是[DefaultValue()]解決方案。 – Giffyguy 2010-11-15 06:24:48

+0

雅虎..!.......快樂編碼 – Singleton 2010-11-15 06:28:48

+0

不,他們不是。就CPU速度而言,它們可能是最有效的方法,但在維護方面 - 在大於1個參數的情況下 - 最好使用就地分配,尤其是在不涉及特殊邏輯的情況下。例如:new bar(){x = 5,y = 7};這迫使類欄的用戶命名所有的屬性/字段,而使用帶參數的構造函數只允許使用名稱(不提,後一種方法只適用於Net 4.0)。 – greenoldman 2010-11-15 07:19:15

2

是否使用自動實現的屬性?值類型屬性將被初始化爲其默認值。引用類型將被初始化爲空。

如果你想讓他們初始化他們,我認爲最好的選擇是在構造函數中設置它們。

如果你沒有使用自動實現的屬性,你可以初始化它們在哪裏聲明。

這也將是牢記order in which the objects fields and constructors are initialized.

2

如果你正在利用自動屬性的有用的構造是最簡單的方法。如果你不是,那麼你的成員變量可以定義默認值。

private string _someString = "Hello."; 

但是,您必須自己定義getter和setter。

public string SomeString 
{ 
    get { return _someString; } 
    set { _someString = value; } 
} 

這不會比在構造函數中定義默認值更簡單。

2

如果你只是想初始化屬性值,那麼構造函數就足夠了,我不明白你爲什麼認爲它們並不簡單。

但是你能做到這一點,如果你願意,你可以初始化變量是這樣的:

int _myProperty = 5; 
public int MyProperty 
{ 
    get{ return _myProperty ;} 

set { _myProperty=value; } 
} 
2

我喜歡去想這個有點不同。如果值爲強制用於創建實例,則它需要是構造函數的參數。

但是,如果值爲可選然後通過屬性設置它是好的。

相關問題