通常 object 到 string 有四種方式(假設有object obj):obj.ToString()、Convert.ToString()、(string)obj、obj as string。他們都能將 object 對象轉換成 string 對象。我就講講他們的異同以及在實(shí)際中應該使用哪個(gè)。
前兩個(gè)方法通常是由別的對象得到 string 對象,它們間的區別只表現在要轉換的對象為 null 時(shí),如果 obj 為 null,調用 obj.ToString 方法會(huì )導致 NullReferenceException 異常,調用 Convert.ToString 不會(huì )拋出異常而返回一個(gè) null。
用強制轉換 (string)obj 要求 obj 的運行時(shí)類(lèi)型必須是 string。如果不是,就會(huì )拋出異常。
用 as 方法則會(huì )相對平穩,當 obj 的運行時(shí)類(lèi)型不是 string 時(shí)會(huì )返回 null 而不拋出異常。
所以在通常在我們需要得到某個(gè)對象的 string 表達形式時(shí),我們應該使用 ToString 和 Convert.ToString,這時(shí)候你就得根據情形選一個(gè),假如你能保證你的對象不為 null,則兩個(gè)差不多。如果有可能為 null,你就應該用 Convert.ToString,如果你希望它為 null 的時(shí)候拋出異常,那么當然可以選擇 ToString。
編者注:
這里是說(shuō) object 到 string,如果在其它類(lèi)型上調用第一種 ToString(),得到的不一定是實(shí)際的內容,可能是對該類(lèi)的描述,這取決于該類(lèi)如何實(shí)現 ToString() 方法。
聯(lián)系客服