2016-08-12 39 views
1

當我使用以下命令:如何用私人設置器初始化對象?

static public string myString { get; private set; } 

我怎樣才能在同一時間設定值?問題是我的類是靜態的,所以在它的聲明中,我需要確保它有一個值。

通常我使用它與非靜態類,所以我設置類構造函數中的值。

+1

你可以在你的靜態構造函數中設置它... –

回答

5

這是隻適用於C#6.0。 C#6.0添加此語法:

static public string myString { get; private set; } = "Hello"; 

除非你打算在你的程序以後的某個時間設置myString,考慮使屬性只讀(這就是C#6.0的另一個新功能):

static public string myString { get; } = "Hello"; 
+0

非常感謝!我意識到我不能在我的版本中這樣做,所以我使用Sergey.quixoticaxis.Ivanov答案。你的也真的很有幫助。如果我可以,我會將它們標記爲答案。 –

+1

@MaximeJoyal你不用擔心。答案完全一樣。 C#6添加了在靜態構造函數中初始化變量的語法快捷方式。 –

4

使用靜態構造函數(MSDN)初始化您的屬性。

2

另一種選擇:

static public string myString { get; private set; } = "default value"; 
+0

雖然正確但在C#6中可能。可能你應該在答案中提到相同的內容。 – Rahul

+0

@Rahul:是的,我知道。我不記得那是哪一個版本,而dasblinkenlight同時加了他更完整的答案,所以我沒有打擾檢查。我只是upvoted他的回答,而不是:) – sstan