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