我曾見過很多方法將.NET中的Object
轉換爲String
,通常用於在對象類型未知時向用戶顯示對象的值。將對象轉換爲字符串的最佳做法
這些措施包括:
Dim x as Object = 3
Dim y as Object = Nothing
Dim z as Object = DBNull.Value
Dim l_displayString As String
l_displayString = "" & x & "" & y & "" & z
l_displayString = If(x, "").ToString() & If(y, "").ToString() & If(z, "").ToString()
l_displayString = Convert.ToString(x) & Convert.ToString(y) & Convert.ToString(z)
是否有這是由微軟推薦的方法,或者說這些都向下編譯到相同的字節碼?
編輯:
讓我擴大問題有點包括:
什麼是這些方法之間的區別?我無法看到底下發生了什麼,所以很高興知道其中一個是否有任何性能優勢。在某些情況下,這些調用可能會進行數千次(例如從大型表中讀取),並且幾秒鐘之後削減可能會對用戶體驗產生巨大影響。
你知不知道這是否是微軟的推薦標準?有什麼想法,如果有的話,開銷與其他兩種方法相比?我不是一個CLR忍者,所以我不能在字節代碼級別比較它們。 – JDB 2012-07-05 15:53:30
我認爲在表現方面,事情並沒有明顯改變,最好是更安全。 – 2012-07-05 15:57:33
謝謝 - 這是最有用的答案。我用我的測試結果添加了一個答案,它基本上證實了你的建議。 – JDB 2012-07-05 17:23:45