验证integer是否等于string

本文关键字:string 是否 integer 验证 | 更新日期: 2023-09-27 18:14:42

所以我试图简单地检查我的变量是否作为字符串输入,我想要if语句通过,而不是一个未处理的异常…

下面是我的代码:

Console.Write("Input: ");
int i;
bool success = int.TryParse("", out i);
if (success) {
    Console.WriteLine("Enter Integer!");
} else {
    i = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("Output: ", i);
}

我哪里做错了?每次我输入一个字符串,我都没有得到if语句,只有崩溃!

验证integer是否等于string

代码中的问题是传递给TryParse的值与传递给Convert.ToInt32的值没有连接。你应该读入值,然后用相同的值调用TryParse :

Console.WriteLine("Enter an integer:");
var s = Console.ReadLine();
int i;
if (int.TryParse(s, out i)) {
    Console.WriteLine("You entered an integer");
} else {
    Console.WriteLine("You did not enter an integer");
}

如果您希望继续读取,直到最终用户输入有效的int,请添加一个循环,如下所示:

int i;
do {
    Console.WriteLine("Enter an integer:");
    var s = Console.ReadLine();
} while (!int.TryParse(s, out i));

我认为你应该这样做

Console.Write("Input: ");
int i;
bool success = int.TryParse(Console.ReadLine(), out i); //Getting the input and checking it
if (!success)
{
    Console.WriteLine("Enter Integer!");
}
else
{      
    Console.WriteLine("Output: ", i);
}

在你的代码中,你得到的值在else语句中,如果你的输入不能被解析为int,那么异常抛出。