int n = 0;
string ent;
ent = Console.ReadLine();
try {
n = int.Parse(ent);
} catch (FormatException) {
Console.WriteLine("{0}: Must be a number", ent);
}
int n = 0;
string ent;
bool validNumber = false;
while(!validNumber){
ent = Console.ReadLine();
if(int.TryParse(ent, out n))
{
validNumber = true;
}
else
{
Console.WriteLine("Must be a number");
}
}
4条答案
按热度按时间qmelpv7a1#
不完全清楚你要做什么,但如果它能够解析输入,这将在任何输入上提示:
请注意,这段代码是用于演示目的,使用
while
循环可以,并会导致意外的行为。wfauudbj2#
看看官方文档和示例用法:
要么按照官方文档中的建议将
int.Parse
Package 在try-catch块中,要么在这里使用int.TryParse()
。尝试catch示例:
kwvwclae3#
我认为一个好的解决方案是使用int.TryParse。顾名思义,它试图将给定的值转换为int,并返回一个布尔值true或false,指示是否成功。它还接收一个out参数,如果转换顺利,最终解析的值将存储在其中。它看起来像这样:
我还添加了一个while循环,以不断要求一个有效的数字。
wnvonmuf4#
你可以在你的字段中使用Regex进行任何你想要的验证。