2013-10-29 77 views
5

最近的對象轉換成字符串,我已經看到了下面的語句頗多:在C#前面加上空字符串

object o; 
// assign o 
return "" + o; 

(基本上一樣return String.Concat(o);

爲什麼會有人想這樣做那?爲什麼不在對象上調用.ToString()(當然,在檢查對象不爲null之後)?

當然,代碼更短,並且取消了空檢查,但我發現它讓人困惑。還有其他好處嗎?我也看到了關於整數值的相同陳述。

我期望在鬆散類型的語言(如JavaScript或PHP)中看到上述代碼 - 但不在C#中。

+0

IMO「+」操作符的串聯是** **總是不那麼清楚,但也可能是一個太極端的位置...... –

回答

3

不,你不想在C#中這樣做。在對象上調用ToString方法會更好。有些語言是首選的語法,比如JavaScript。所以你可能會看到一些跨語言泄漏。

3

IMO,只是一個壞方法以避免空引用異常。

大概是原開發商的意圖是返回string爲更少的代碼儘可能地使用,而不檢查nullType