关于正确使用TryParse()的新手咨询
本文关键字:新手 于正确 TryParse | 更新日期: 2023-09-27 17:59:43
我刚刚尝试过TryParse
,对C#来说是个新手,我只是想了解一切,然后希望能获得最佳实践。。。
从语法上讲,这是有效的:
double number = Double.Parse(C.ReadLine());
TryParse是否只返回布尔值,如果解析成功,则返回true?
当我这样做时:
double number;
bool b = Double.TryParse(C.ReadLine(), out number);
number
是解析后的输入,从C.ReadLine()
开始,正如预期的那样,一切正常。TryParse通常是这样使用的吗?努力做到高效,感谢这样的建议。
欢迎任何关于方法的建议,以及关于Try(things)在线资源的信息。
当TryParse
可能失败时,您可以使用它,并且您不希望您的代码抛出异常。
例如
if (!Double.TryParse(someinput, out number))
{
Console.WriteLine("Please input a valid number");
}
Parse
如果成功将返回双倍值,否则将抛出异常。TryParse将返回一个表示操作成功的布尔值,如果成功,它将在您传递给它的out
参数中填充解析后的值。它永远不会抛出异常。
通常,当您期望输入字符串不是有效数字,并且您有处理它的逻辑(例如,并显示错误消息)时,应该使用TryParse
。
如果您不希望输入字符串是有效的双精度之外的任何字符串,则应该使用Parse
。
唯一的区别是,如果TryParse不能解析双精度,它不会出现异常。
当你想分配一个默认值或忽略代码中的值时,这很方便
示例:
double number;
if (Double.TryParse(C.ReadLine(), out number))
{
// this is a double so all good
}
else
{
// not a valid double.
}
示例:
double number;
progressBar.Value = Double.TryParse(C.ReadLine(), out number) ? number : 4.0;
// If number is a valid double, set progressbar, esle set default value of 4.0
你还在Enum
上问过TyrParse
,这可以像这个一样完成
DayOfWeek fav;
if (Enum.TryParse<DayOfWeek>(Console.ReadLine(), out fav))
{
// parsed
}