欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談C#中ToString()和Convert.ToString()的區(qū)別

 更新時間:2016年11月21日 11:59:43   作者:逆心  
本文介紹了ToString()和Convert.ToString()的使用方法,他們之間的區(qū)別,以及從object到string的轉(zhuǎn)換方法,希望對學(xué)習(xí)C#編程的你有所幫助

淺談ToString()和Convert.ToString()方法的區(qū)別

一、一般用法說明

  ToString()是Object的擴(kuò)展方法,所以都有ToString()方法;而Convert.ToString(param)(其中param參數(shù)的數(shù)據(jù)類型可以是各種基本數(shù)據(jù)類型,也可以是bool或object類對象。

二、ToString()和Convert.ToString()的區(qū)別

  一般情況下,這兩種方法都可以通用,但是當(dāng)返回的數(shù)據(jù)類型中有可能出現(xiàn)null值時如果調(diào)用ToString方法了,就會返回NullReferenceException,除非你要捕捉此異常再做處理,否則在這種情況下就應(yīng)考慮使用Convert.ToString()方法了,因為Convert.ToString(null)不會拋出異常而是返回空字符串。
主要的區(qū)別就如上所示,由于ToString()是擴(kuò)展方法,擴(kuò)展自O(shè)bject,所以轉(zhuǎn)null報異常。而Convert.ToString()返回空字符串。

  不過Convert.ToString(),作用不算太大,因為:

static void Main(string[] args)
    {
      string str1 = "";
      Console.WriteLine(Convert.ToString(str1) == null); //false
      Console.WriteLine(Convert.ToString(str1) == "");  //true

      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

   另外,如果是跟某字符串對比,那么使用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 對象轉(zhuǎn)換成 string 對象。

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

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

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

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

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

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

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

以上所述是本文的全部內(nèi)容,希望對大家有所幫助!

相關(guān)文章

  • C#基本打印事件用法實例

    C#基本打印事件用法實例

    這篇文章主要介紹了C#基本打印事件用法,實例分析了C#中print打印及DrawString文本字符串繪制等相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • 關(guān)于c#二叉樹的實現(xiàn)

    關(guān)于c#二叉樹的實現(xiàn)

    本篇文章小編為大家介紹,關(guān)于c#二叉樹的實現(xiàn)。需要的朋友參考下
    2013-04-04
  • C#實現(xiàn)控制臺飛行棋小游戲

    C#實現(xiàn)控制臺飛行棋小游戲

    這篇文章主要為大家詳細(xì)介紹了C#實現(xiàn)控制臺飛行棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下的相關(guān)資料
    2021-07-07
  • C#WinFrom導(dǎo)出Excel過程解析

    C#WinFrom導(dǎo)出Excel過程解析

    這篇文章主要介紹了C#WinFrom導(dǎo)出Excel過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • C#(.Net)將非托管dll嵌入exe中的實現(xiàn)

    C#(.Net)將非托管dll嵌入exe中的實現(xiàn)

    本文主要介紹了C#(.Net)將非托管dll嵌入exe中的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • C#折線圖控件使用方法詳解

    C#折線圖控件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了C#折線圖控件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • c# 靜態(tài)類的使用場景

    c# 靜態(tài)類的使用場景

    這篇文章主要介紹了c# 靜態(tài)類的使用場景,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C#根據(jù)身份證號碼判斷出生日期和性別

    C#根據(jù)身份證號碼判斷出生日期和性別

    這篇文章主要為大家詳細(xì)介紹了C#根據(jù)身份證號碼判斷出生日期和性別的方法,感興趣的小伙伴們可以參考一下
    2016-08-08
  • C#訪問網(wǎng)絡(luò)共享文件夾的方法

    C#訪問網(wǎng)絡(luò)共享文件夾的方法

    這篇文章主要為大家詳細(xì)介紹了C#訪問網(wǎng)絡(luò)共享文件夾的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 登錄驗證全局控制的幾種方式總結(jié)(session)

    登錄驗證全局控制的幾種方式總結(jié)(session)

    在登陸驗證或者其他需要用到session全局變量的時候,歸結(jié)起來,主要有以下三種較方便的實現(xiàn)方式。(其中個人較喜歡使用第一種實現(xiàn)方法)
    2014-01-01

最新評論