天天看點

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.

ToString()字元串轉換你用正确了嗎?

ConVert.ToString()

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

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

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

ToString()字元串轉換你用正确了嗎?

建議使用方式

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

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

ToString()字元串轉換你用正确了嗎?

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

您可以随意轉載、摘錄,但請在文章内注明作者和原文連結。

ToString()字元串轉換你用正确了嗎?