1 回答
TA贡献1801条经验 获得超16个赞
使用Int32.TryParse(String, Int32)尝试将字符串解析为整数并返回表示解析是否成功的布尔值的方法。在您的情况下,如果解析失败,您可以从您的ReadNumber方法中返回 -1,该方法将调用default:您的部分 switch case,并且将显示一条错误消息。否则,如果解析成功,您可以简单地返回解析的数字,这将是您想要的数字之一,或者它会调用default:action。
以下是Microsoft 文档中的示例
String[] values = { null, "160519", "9432.0", "16,667",
" -322 ", "+4302", "(100);", "01FA" };
foreach (var value in values)
{
int number;
bool success = Int32.TryParse(value, out number);
if (success)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
Console.WriteLine("Attempted conversion of '{0}' failed.",
value ?? "<null>");
}
}
在您的具体示例中,您需要修改您的ReadNumber(string prompt)方法:
static int ReadNumber(string prompt)
{
string text;
int number;
WriteText(prompt, 20, 14);
text = Console.ReadLine();
bool is_parsing_successful = Int32.TryParse(text, out number);
ClearText(20, 14, prompt.Length + text.Length); // Clear the text at this line
if(is_parsing_successful){
return number;
} else {
return -1;
}
}
- 1 回答
- 0 关注
- 88 浏览
添加回答
举报