技術頻道導航
HTML/CSS
.NET技術
IIS技術
PHP技術
Js/JQuery
Photoshop
Fireworks
服務器技術
操作系統(tǒng)
網站運營

贊助商

分類目錄

贊助商

最新文章

搜索

【實例演示】比較C# int.Parse()和Convert.ToInt32()的區(qū)別

作者:admin    時間:2022-5-27 19:7:18    瀏覽:

C# int.Parse()Convert.ToInt32()都是把數(shù)字字符串轉換為整數(shù)的方法,多數(shù)情況下,它們返回的結果是一樣的,因此用哪個都可以。但是,并不是任何時候兩個方法的返回結果都一樣,本文將介紹int.Parse()Convert.ToInt32()的主要區(qū)別。

實例

當傳輸null給兩個方法時,我們就會看到它們的不同。

string inputNullString = null;
try
{
    var outputInteger = int.Parse(inputNullString);
    Console.WriteLine(outputInteger);
}
catch (ArgumentNullException ex)
{
    Console.WriteLine("The int.Parse() method throws ArgumentNullException.");
}
var outputIntegerWithConvert = Convert.ToInt32(inputNullString);
Console.WriteLine($"The value of the outputIntegerWithConvert variable is: {outputIntegerWithConvert}");

這里,我們傳遞一個空值(null),并看到預期的差異:

輸出

The int.Parse() method throws ArgumentNullException.
The value of the outputIntegerWithConvert variable is: 0

int.Parse()方法無法分析字符串,因此,它拋出了ArgumentNullException。但是Convert.ToInt32()方法未引發(fā)異常,它返回了0。所以,如果我們使用Convert.ToInt32()方法,就不必擔心null。

這是使用Convert.ToInt32()方法而不是int.Parse()方法的一個優(yōu)點。

什么時候使用int.Parse() 和 Convert.ToInt32()?

如果我們知道總是以字符串形式獲取整數(shù),那么可以使用int.Parse()方法。但是,如果字符串可能為null或對象或其他類型,我們應該使用Convert.ToInt32()方法。

在討論這些方法的同時,我們還要提到一個int.TryParse()方法,它提供了一種更好的方法來將字符串解析為整數(shù)。參考以下文章:

int.TryParse() 方法

int.TryParse()方法將字符串轉換為整數(shù),但它還返回一個值,指示操作是否成功。因此,我們可以將任何類型的值傳遞給它。

如果成功轉換為整數(shù),則將該整數(shù)保存到輸出變量中,并返回true,否則返回false

if (int.TryParse(" 123 ", out var outputInteger))
    Console.WriteLine($"輸出: {outputInteger}"); // 輸出: 123

我們將“123”作為字符串傳遞給int.TryParse()方法,并將outputInteger作為out參數(shù)傳遞給該方法。由于它是一種有效的整數(shù)格式,int.TryParse()方法成功地將字符串轉換為整數(shù),并執(zhí)行if塊。但如果轉換失敗,整數(shù)將默認為0。

在這兩種情況下,都沒有例外,這意味著我們可以在int.TryParse()方法中傳遞任何字符串值。同樣,如果我們不確定字符串是否可解析,那么應該使用int.TryParse()方法。除了避免異常,它比我們討論的其他兩種方法更快。

總結

在本文中,我們學習了int.Parse()方法和Convert.ToInt32()方法及其差異。我們還討論了int.TryParse()方法,以及為什么它優(yōu)于前兩種方法。

相關文章

x
  • 站長推薦
/* 左側顯示文章內容目錄 */