C# ToString()和Convert.ToString()的區(qū)別
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
一、一般用法說(shuō)明 ToString()是Object的擴(kuò)展方法,所以都有ToString()方法; 而Convert.ToString(param)其中param參數(shù)的數(shù)據(jù)類型可以是各種基本數(shù)據(jù)類型,也可以是bool或object類對(duì)象。 二、ToString()和Convert.ToString()的區(qū)別 一般情況下,這兩種方法都可以通用,但是當(dāng)返回的數(shù)據(jù)類型中有可能出現(xiàn)null值時(shí)如果調(diào)用ToString方法了,就會(huì)返回NullReferenceException,除非你要捕捉此異常再做處理,否則在這種情況下就應(yīng)考慮使用Convert.ToString()方法了,因?yàn)镃onvert.ToString(null)不會(huì)拋出異常而是返回空字符串。 主要的區(qū)別就如上所示,由于ToString()是擴(kuò)展方法,擴(kuò)展自O(shè)bject,所以轉(zhuǎn)null報(bào)異常。而Convert.ToString()返回空字符串。 不過(guò)Convert.ToString(),作用不算太大,因?yàn)椋?nbsp; static void Main(string[] args) { string str1 = ""; Console.Write(Convert.ToString(str1)==null+”:”+Convert.ToString(str1)==""); //false//true Console.WriteLine(); string str2 = null; Console.WriteLine(Convert.ToString(str2) == null); //true Console.WriteLine(Convert.ToString(str2) == ""); //false Console.ReadKey(); } null轉(zhuǎn)了之后還是null,""轉(zhuǎn)了之后還是""。 所以,配合上string.IsNullOrEmpty(Convert.ToString())還是比較方便的。 Console.WriteLine(string.IsNullOrEmpty(Convert.ToString(str1))); //true Console.WriteLine(string.IsNullOrEmpty(Convert.ToString(str1))); //true 另外,如果是跟某字符串對(duì)比,那么使用Convert.ToString()還是很方便的,例如 if(Convert.ToString(str) == "123") { } 三、object到string的轉(zhuǎn)換 從 object 到 string 大致有四種方式,包括顯式轉(zhuǎn)換和as關(guān)鍵詞的使用:obj.ToString()、Convert.ToString()、(string)obj、obj as string。他們都能將 object 對(duì)象轉(zhuǎn)換成 string 對(duì)象。 前兩個(gè)方法通常是由別的對(duì)象得到 string 對(duì)象,它們間的區(qū)別如前文所述主要表現(xiàn)在: ToString() :如果 obj 為 null,調(diào)用 obj.ToString() 方法會(huì)導(dǎo)致 NullReferenceException 異常。 Convert.ToString():如果 obj 為 null,調(diào)用 Convert.ToString()會(huì)返回null (string):用強(qiáng)制轉(zhuǎn)換 (string)obj 要求 obj 的運(yùn)行時(shí)類型必須是 string。如果不是,就會(huì)拋出異常。 as :用 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()。 ToString()這個(gè)方法很方便, 一般都是轉(zhuǎn)之前需要先判斷是否為null. 該文章在 2021/1/28 12:02:32 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |