技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

【实例演示】比较C# int.Parse()和Convert.ToInt32()的区别

作者:admin    时间:2022-5-27 19:7:18    浏览:

C# int.Parse()Convert.ToInt32()都是把数字字符串转换为整数的方法,多数情况下,它们返回的结果是一样的,因此用哪个都可以。但是,并不是任何时候两个方法的返回结果都一样,本文将介绍int.Parse()Convert.ToInt32()的主要区别。

实例

当传输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()方法未引发异常,它返回了0。所以,如果我们使用Convert.ToInt32()方法,就不必担心null

这是使用Convert.ToInt32()方法而不是int.Parse()方法的一个优点。

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

如果我们知道总是以字符串形式获取整数,那么可以使用int.Parse()方法。但是,如果字符串可能为null或对象或其他类型,我们应该使用Convert.ToInt32()方法。

在讨论这些方法的同时,我们还要提到一个int.TryParse()方法,它提供了一种更好的方法来将字符串解析为整数。参考以下文章:

int.TryParse() 方法

int.TryParse()方法将字符串转换为整数,但它还返回一个值,指示操作是否成功。因此,我们可以将任何类型的值传递给它。

如果成功转换为整数,则将该整数保存到输出变量中,并返回true,否则返回false

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

我们将“123”作为字符串传递给int.TryParse()方法,并将outputInteger作为out参数传递给该方法。由于它是一种有效的整数格式,int.TryParse()方法成功地将字符串转换为整数,并执行if块。但如果转换失败,整数将默认为0

在这两种情况下,都没有例外,这意味着我们可以在int.TryParse()方法中传递任何字符串值。同样,如果我们不确定字符串是否可解析,那么应该使用int.TryParse()方法。除了避免异常,它比我们讨论的其他两种方法更快。

总结

在本文中,我们学习了int.Parse()方法和Convert.ToInt32()方法及其差异。我们还讨论了int.TryParse()方法,以及为什么它优于前两种方法。

相关文章

x
  • 站长推荐
/* 左侧显示文章内容目录 */