ToString()字符串轉換你用正確了嗎?


前言

在開發中,ToString()這個方法太方便了,以致於誤解大家轉換時都是直接Object.ToString()直接轉換,

其實不然, 一般都是轉之前先判斷是否為null后再進行轉換,否則會直接報錯。

 


 

ToString()

每個類的基類都是Object類,ToString()是可以編寫 overload  override 的方法之一。

因此,當你調用object.ToString()時,它的意思是它將調用該對象ToString,

如果object為null,則會拋出異常Object is not set to an instance of an object.


 

ConVert.ToString()

與在Convert.ToString方法中一樣,Convert是一個靜態類,我們在其中傳遞對象,

並在該方法中返回其檢查對象是否為null或否(如果不是,則調用該對象的ToString方法,否則返回null)。

這樣是不會報錯的,但是null還是返回null," "還是返回" ",沒啥意義,並且不注意的話,后續使用轉換后的對象還會報錯,如下:

 


 

建議使用方式

我們可以在使用之前進行null的規避,規避的方法很多,【if條件判斷、三目運算符(三元運算符)等方法】

根據實際情況使用即可,這樣就不會對后續操作有影響;

 


 

Object到String的轉換方法

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

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

  1. ToString() :如果 obj 為 null,調用 obj.ToString() 方法會導致 NullReferenceException 異常。
  2. Convert.ToString():如果 obj 為 null,調用 Convert.ToString()會返回null
  3. (string):用強制轉換 (string)obj 要求 obj 的運行時類型必須是 string。如果不是,就會拋出異常。
  4. as :用 as 方法則會相對平穩,當 obj 的運行時類型不是 string 時會返回 null 而不拋出異常。

 


 

所以通常在我們需要得到某個對象的 string 表達形式時,應該正確使用 ToString() 和 Convert.ToString()。

 

 
歡迎關注訂閱微信公眾號【熊澤有話說】,更多好玩易學知識等你來取
作者:熊澤-學習中的苦與樂
公眾號:熊澤有話說
出處:https://www.cnblogs.com/xiongze520/p/15420047.html
您可以隨意轉載、摘錄,但請在文章內注明作者和原文鏈接。  

 

 

 


免責聲明!

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



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