2013-05-16 53 views
0

我想採取簡單的公共屬性,並將它們變成匿名訪問者,但我的一些邏輯要求訪問者/屬性的初始值爲null,如果我沒有分配,我可以依賴匿名訪問者爲null他們有價值嗎?在c#中用null初始化自動實現的屬性的最佳方法?

目前:

public string XML = null;   // set XML or XMLPath to turn on XML stuff 
public string XMLPath = null; 

相比:

public string XML {get; set;} 
public string XMLPath {get; set;} 

回答

2

你不需要做任何事情。它們默認爲null。田地也是如此。實際上,自動屬性也使用一個字段,這就是爲什麼自動屬性的默認值是null(或更準確地說是default(T))。

1

新的類字段總是使用空值進行初始化(除了用默認值初始化的簡單類型,例如0代表整數)。您不需要將null分配給它們。它們都適用於匿名對象中的自動實現的屬性和字段。

只有方法變量沒有被初始化,但是對於他們來說,如果你試圖在不初始化它們的情況下讀取它們,你將首先得到編譯器錯誤,所以你也不用擔心。

結論:C#始終關心在編譯時未訪問未初始化的變量,因此您不可能訪問沒有在運行時分配默認值的變量。

2

未分配的自動實現的屬性被定義爲以其類型的默認值開始。所以參考類型開始null

+0

簡短,甜蜜,太重要,你先回答,其他回答也不錯。 – Nnoel

+0

哈哈,道歉@DanielHilgarth,你的權利,哎呀。糾正。 – Nnoel

+0

@Nnoel:那真的不是我的意圖。正如我所說,你應該將答案標記爲你最喜歡的答案。 –

相關問題