C# Parse与Int32.TryParse
人们一直建议使用Int32.TryParse,但我发现,对于任何字符串(如4e),它都会给我输出0i,我会直接打印输入,而Int32.Parse会给出一个异常。使用TryParse有我看不到的一面吗?任何帮助都将不胜感激TryParse和Parse应该以同样的方式处理有效数字。区别在于它们发出输入无效信号的方式。Parse将抛出一个异常,而TryParse返回一个需要手动处理的布尔值C# Parse与Int32.TryParse,c#,input,C#,Input,人们一直建议使用Int32.TryParse,但我发现,对于任何字符串(如4e),它都会给我输出0i,我会直接打印输入,而Int32.Parse会给出一个异常。使用TryParse有我看不到的一面吗?任何帮助都将不胜感激TryParse和Parse应该以同样的方式处理有效数字。区别在于它们发出输入无效信号的方式。Parse将抛出一个异常,而TryParse返回一个需要手动处理的布尔值 if (!int.TryParse(input, out var result)) { Console.
if (!int.TryParse(input, out var result))
{
Console.Write("NOK"); // Don't use result, it will have the default value of 0
}
else
{
Console.Write($"OK {result}"); // Ok, reuslt has the parsed value of input
}
您可以像这样检查布尔返回值:
string text1 = "x";
int num1;
bool res = int.TryParse(text1, out num1);
if (res == false)
{
// String is not a number.
}
不要忽略布尔返回值。