2011-09-03 75 views
7

可能重複:
variable.ToString() vs. Convert.ToString(variable)C#中Convert.ToString()和.ToString()之間的區別?

是什麼在C#中Convert.ToString()和的ToString()有什麼區別?

當我嘗試使用ToString()將dataRow[i]轉換爲字符串時,我收到一個錯誤。我該如何解決?

+0

dr [0]的類型是什麼? –

+0

據我所知,既不存在「Tostring()」也不存在「tostring()」。 C#區分大小寫;你是指'ToString',還是你有其他用戶定義的函數?向我們顯示導致錯誤的源代碼,並向我們顯示錯誤。 –

+0

也可能有'DbNull'(不是'null')的「問題」;並且可能需要使用'IsNull(col)',否則索引('[col]')可能會導致IIRC失敗。無論如何,*請包括*相關信息:「接收錯誤」與「不起作用」一樣有用。 – 2011-09-03 06:02:47

回答

8

它們之間有一個簡單但重要的區別...

的ToString()引發異常時

所以在object.ToString()的情況下,如果對象爲空,它提高對象爲空NullReferenceException異常。

Convert.ToString()在空對象的情況下,返回的String.Empty

(字符串)澆鑄空

在 爲MyObject O =(字符串)NullObject的情況下

所以的情況下分配對象;

但是,當您使用o來訪問任何屬性時,它會引發NullReferenceException。

http://maniish.wordpress.com/2007/10/08/difference-between-tostring-vs-converttostring-vs-string-cast/

15

基本上都被用於將值轉換爲字符串,但它們之間的基本區別:

當我們有一個空的對象,Convert.ToString(Object);處理NULL值,而Object.ToString();不處理NULL值並且它拋出NULL引用異常。

7

首先,Object.ToString()是基類Object中的一個虛函數。任何類都可以重寫ToString()來提供它自己的實現。 Convert.ToString()是一種靜態方法,它嘗試獲取許多不同的參數並將其轉換爲有意義的字符串。另外,如果調用它的對象爲null,則Object.ToString()將失敗。

此外,Object.ToString()並不總是將對象轉換爲您可能期望的字符串形式。例如,基本函數Object.ToString()將始終返回對象的完全限定類型名稱。任何類都可以實現ToString(),但是它的意願並不一定是有意義的。

1

Convert.ToString和.Tostring之間有一個基本的不同。 Convert.ToString將處理空異常,但.Tostring將拋出錯誤

相關問題