我正在尝试验证'columnsValidation'是否为数字字符串,并将其转换为int,如果是的话。
出于某种原因,我最终陷入无休止的循环,因为'isNumber'总是等于假......
此代码是我的彩票项目的一部分。
我希望我的问题很清楚,如果需要更多信息,请告诉我,我会回答。
提前致谢, 宜兰。
Console.WriteLine("Please insert the number of rows: ");
string columnsValidation = Console.ReadLine();
bool isNumber = false;
while(isNumber == false)
{
bool.TryParse(columnsValidation, out isNumber);
if (isNumber == true)
columns = int.Parse(columnsValidation);
else
{
Console.WriteLine("You've inserted an invalid value, please try again.");
columnsValidation = Console.ReadLine();
}
}
答案 0 :(得分:2)
更正您对TryParse
:
isNumber = int.TryParse(columnsValidation, out columns);
TryParse
返回boolean,指示解析是否成功,如果成功,则设置out
param和解析结果。
答案 1 :(得分:2)
您需要将int.TryParse
与columnsValidation
if (!int.TryParse(columnsValidation,out columns)
{
Console.WriteLine("You've inserted an invalid value, please try again.");
columnsValidation = Console.ReadLine();
}
else
{
isNumber = true;
}
答案 2 :(得分:0)
为什么不使用Int.TryParse
int columns = 0;
while(true)
{
if (!Int32.TryParse(columnsValidation,out columns)
{
Console.WriteLine("You've inserted an invalid value, please try again.");
columnsValidation = Console.ReadLine();
}
else
{
break;
}
}