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