爲C#公共屬性設置默認值的最簡單/直接的方法是什麼?C#自動屬性 - 設置默認值
//我該如何設置默認值?
public string MyProperty { get; set; }
請不要認爲我使用的是私有財產&實現get/set方法公共屬性。試圖保持這個簡潔,並不想談論爲什麼這樣更好。謝謝。
爲C#公共屬性設置默認值的最簡單/直接的方法是什麼?C#自動屬性 - 設置默認值
//我該如何設置默認值?
public string MyProperty { get; set; }
請不要認爲我使用的是私有財產&實現get/set方法公共屬性。試圖保持這個簡潔,並不想談論爲什麼這樣更好。謝謝。
請不要認爲我使用的是私有財產
這是設置這種默認的標準方式。你可能不喜歡它,但是甚至自動屬性語法在編譯後會做什麼 - 它會生成一個專用字段並在getter和setter中使用它。
您可以在構造函數中設置該屬性,該屬性將盡可能接近默認值。
只是初始化它在構造函數中:
public class MyClass
{
public string MyProperty { get; set; }
public MyClass()
{
MyProperty = "default value";
}
}
注意,如果你有多個構造函數,你需要確保他們每個人的任何設置屬性或委託給其他構造函數一樣。
另一個屬性或另一個ctor? – 2010-07-26 14:17:29
感謝喬恩,但sbenderli第一次:)。出於某種原因,我錯誤地認爲「默認值」會覆蓋在初始化過程中發送的內容。 – Alan 2010-07-26 14:38:05
@jk:另一個構造函數。衛生署。編輯。 – 2010-07-26 14:44:54
不,如果您可以標記屬性來指示默認值,但不能。如果您確實想使用自動屬性,則無法在屬性聲明中設置默認值。
我提出的最簡潔的解決方法是在構造函數中設置默認值。它仍然有點難看。默認值與屬性聲明不在一起,如果你有多個構造函數,這可能會很痛苦,但這仍然是我發現的最好的
如果你打算使用自動實現的屬性,唯一的真實選項是在構造函數中初始化屬性值。
從C#6.0開始,您可以將默認值分配給自動屬性。
public string MyProperty {get; set; } = "Default Value";
http://stackoverflow.com/questions/40730/how-do-you-give-ac-auto-property-a-default-value – devio 2010-07-26 14:15:37
OT的可能重複:我想你指的是私人領域 – Douglas 2010-07-26 14:16:05
我認爲你混淆公共/私人和自動屬性的概念與手動實現的屬性與後臺字段。這些概念是獨立的。 – 2010-07-26 14:27:16