object to string - C# Notes


ToString()與Convert.ToString(p)

參考資料:http://www.cnblogs.com/kissdodog/p/3565988.html

一、一般用法說明

ToString():是Object的擴展方法,所以都有ToString()方法;

Convert.ToString(param):其中param參數的數據類型可以是各種基本數據類型,也可以是bool或object類對象。

二、兩者的區別

一般情況下,這兩種方法都可以通用,但是當返回的數據類型中有可能出現null值時如果調用ToString方法了,就會返回NullReferenceException,除非你要捕捉此異常再做處理,否則在這種情況下就應考慮使用Convert.ToString()方法了,因為Convert.ToString(null)不會拋出異常而是返回空字符串。

主要的區別就如上所示,由於ToString()是擴展方法,擴展自Object,所以轉null報異常。而Convert.ToString()返回空字符串。

不過Convert.ToString(),作用不算太大,因為null轉了之后還是null,""轉了之后還是""。

Convert.ToString("") == "";

Convert.ToString(null) == null;

        }

所以,配合上string.IsNullOrEmpty(Convert.ToString())還是比較方便的。

另外,如果是跟某字符串對比,那么使用Convert.ToString()還是很方便的

三、objectstring的轉換

從 object 到 string 大致有四種方式,包括顯式轉換和as關鍵詞的使用:obj.ToString()、Convert.ToString()、(string)obj、obj as string。他們都能將 object 對象轉換成 string 對象。

前兩個方法通常是由別的對象得到 string 對象,它們間的區別如前文所述主要表現在:

ToString() :如果 obj 為 null,調用 obj.ToString() 方法會導致 NullReferenceException 異常。

Convert.ToString():如果 obj 為 null,調用 Convert.ToString()會返回null。

(string):用強制轉換 (string)obj 要求 obj 的運行時類型必須是 string。如果不是,就會拋出異常。

as :用 as 方法則會相對平穩,當 obj 的運行時類型不是 string 時會返回 null 而不拋出異常。

所以在通常在我們需要得到某個對象的 string 表達形式時,我們應該使用 ToString() 和 Convert.ToString(),這時候你就得根據情形選一個,假如你能保證你的對象不為 null,則兩個差不多。如果有可能為 null,你就應該用 Convert.ToString(),如果你希望它為 null 的時候拋出異常,那么當然可以選擇 ToString()。

ToString()這個方法太方便了,以致於以為就它這一種方法,一般都是轉之前先判斷是否為null。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM