TryParse变得很烦人
本文关键字:TryParse | 更新日期: 2023-09-27 18:16:20
我遇到了这个非常烦人的问题(我知道这是基本的东西),但是当我尝试使用tryparse时,我必须在它说整数之前输入2个值,我希望它在1次尝试后说整数。(顺便说一句,我必须使用tryparse)下面是一个例子。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int results = 0;
Console.WriteLine("how old are you?");
int.TryParse (Console.ReadLine(), out results);
if (int.TryParse (Console.ReadLine(), out results))
{
Console.WriteLine("integer");
}
else
{
Console.WriteLine("not an integer");
}
Console.ReadLine();
}
}
}
为Console.ReadLine()
和int.TryParse
使用变量:
Console.WriteLine("how old are you?");
string input = Console.ReadLine().Trim();
bool success = int.TryParse(input, out results);
if ( success )
{
Console.WriteLine("{0} is an integer", input); // results has the correct value
}
else
{
Console.WriteLine("{0} is not an integer", input);
}
去掉对TryParse
的第一个冗余调用,例如
class Program
{
static void Main(string[] args)
{
int results = 0;
Console.WriteLine("how old are you?");
//int.TryParse(Console.ReadLine(), out results); <-- remove this
if (int.TryParse (Console.ReadLine(), out results))
{
Console.WriteLine("integer");
}
else
{
Console.WriteLine("not an integer");
}
Console.ReadLine();
}
}
TryParse将数字的字符串表示形式转换为其等效的32位有符号整数。
返回值表示转换是否成功。
所以你可以这样使用
if (int.TryParse (Console.ReadLine(), out results))
{
Console.WriteLine("integer");
}
在其他答案之上,您可能希望在while loop
中执行TryParse
,以便用户必须输入有效的整数
while(!int.TryParse(ConsoleReadLine(), out results)
Console.WriteLine("not an integer");
ConsoleWriteLine("integer");
为了更好地解释当前的问题,您要求用户输入两个整数,但您只关心第二个整数。第一个被分配给results
但是当你下次调用TryParse
的时候它会被覆盖而不会被使用