2011-12-13 31 views
0

可能重複:
What is the difference between String.Empty and 「」
In C#, should I use string.Empty or String.Empty or 「」?
Default string initialization: NULL or Empty?是否有理由在C#中初始化字符串?

我想知道是否有初始化字符串中的利益?

String value1 = String.Empty; 

編輯:我的問題是更多的我爲什麼要初始化字符串除「」或的String.Empty

+0

我錯了;這些編譯不完全一樣。 – SLaks 2011-12-13 16:57:07

+0

@SLaks,這並沒有阻止3人在你的答案被刪除之前將你提升到最高點;) – 2011-12-13 16:58:57

+1

問題是關於哪種方法更好,或者你是否應該初始化字符串? – JohnFx 2011-12-13 17:00:15

回答

2

假設這個問題的意思是「你爲什麼要初始化字符串」,而不是「哪種方法是最好的初始化字符串」 ......

是的,這是初始化字符串,以儘量減少空引用的可能性是個好主意代碼中的例外。很容易創建一個代碼路徑,其中字符串從不設置,當您調用該字符串的方法時,它將會出錯。

4

之間進行選擇IMO,使用的String.Empty,因爲它增加了代碼的可讀性。像Gendarme和FxCop這樣的代碼風格掃描程序會根據最佳實踐標記「」的用法。

編輯: 刪除了有關內存使用情況的錯誤消息。

1

考慮到空字符串和空字符串之間存在有意義的區別,我認爲答案是「它取決於」。如果你的代碼對空值沒有用處,並且你希望能夠編寫引用該變量的代碼,並假定這個值是非空的,那麼初始化就是有意義的。但是可能有些情況下null是有效的,並且初始化沒有意義。例如,如果字符串保存從某個測試設備收到的值,則null可能表示沒有收到任何值,而「」表示收到了某些東西,而且恰好是空字符串。