【实例演示】比较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()
方法,它提供了一种更好的方法来将字符串解析为整数。参考以下文章:
- [解决] C# Parse小数提示FormatException:输入字符串的格式不正确
- 在C#中将字符串转换为 Int 的最安全方法[示例]
- 详解C# TryParse怎样转换小数、16进制、千分位数字等字符串
- [示例]C# single.tryParse将数字字符串转换为浮点数
- 详解C# TryParse(String, NumberStyles, IFormatProvider, Single)转换字符串为浮点数
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()
方法,以及为什么它优于前两种方法。
相关文章
- 站长推荐