C# 如何检查变量是否等于字符串或int?
例如,假设我有一个名为input的和int。然后我得到了它的输入。像这样:C# 如何检查变量是否等于字符串或int?,c#,C#,例如,假设我有一个名为input的和int。然后我得到了它的输入。像这样: input = Console.ReadLine(); 但是当用户收到提示时,输入是一个字符串,然后它会出现错误并导致程序崩溃。如何检查是否为输入输入了字符串 是否有类似于if(input.equals(string))之类的选项 编辑:我试着做了三巴塞,但我认为我做错了。我把代码贴在下面 string numberOne; string numberTwo; double answer;
input = Console.ReadLine();
但是当用户收到提示时,输入是一个字符串,然后它会出现错误并导致程序崩溃。如何检查是否为输入输入了字符串
是否有类似于if(input.equals(string))
之类的选项
编辑:我试着做了三巴塞,但我认为我做错了。我把代码贴在下面
string numberOne;
string numberTwo;
double answer;
string operand;
Console.WriteLine("Enter the first number");
numberOne = Console.ReadLine();
if (double.TryParse(numberOne, out double value))
{
Convert.ToInt32(numberOne);
}
else
{
Console.WriteLine("Non integer entered. Please enter a valid number.");
}
Console.WriteLine("Enter the operator");
operand = Console.ReadLine();
Console.WriteLine("Enter the second number");
numberTwo = Console.ReadLine();
if (double.TryParse(numberTwo, out double value2))
{
Convert.ToInt32(numberTwo);
}
else
{
Console.WriteLine("Non integer entered. Please enter a valid number.");
}
switch(operand)
{
case "+":
answer = numberOne + numberTwo;
Console.WriteLine("The answer is " + answer);
break;
case "-":
answer = numberOne - numberTwo;
Console.WriteLine("The answer is " + answer);
break;
case "*":
answer = numberOne * numberTwo;
Console.WriteLine("The answer is " + answer);
break;
case "/":
answer = numberOne / numberTwo;
Console.WriteLine("The answer is " + answer);
break;
default:
Console.WriteLine("Please enter a valid operator such as +, -, *, or /");
break;
}
Console.ReadLine
始终返回字符串。它不会根据从控制台读取的内容返回不同类型的内容。您的工作是确定输入的值是否符合您的要求(在本例中,它应该是可以解析为int的值)
您可以使用int.TryParse
尝试将字符串解析为int
,而不会在解析失败时引发异常
string input = Console.ReadLine();
if(int.TryParse(input, out int value))
{
// value contains an int parsed out of input
}
else
{
// parsing fails, you can do something about that, e.g. ask user for different input
}
Console.Readline()总是返回一个字符串,但是您可以这样做来检查是否输入了整数,并继续请求正确的输入类型,直到用户交付为止
string input = Console.ReadLine();
int parsed;
while (!int.TryParse(input, out parsed))
{
Console.WriteLine("Please enter a number!");
input = Console.ReadLine();
}
//do something with parsed
你今天应该养成阅读文档的习惯;正如ReadLine
的文档所指出的,它总是返回一个字符串。@killakrab真的吗?您有一个包含intinput=Console.ReadLine()的程序它编译并运行,只有在用户键入某个内容并按enter键后才会出现错误?哇。你是针对Console.ReadLine明确地问这个问题,还是这只是一个示例,这是一个更一般的问题?@Mike Nakis我正在学习c#现在,我正在尝试制作一个简单的计算器,当输入字符串而不是整数时,它不会崩溃。请看下面我的答案。它处理多个错误的输入,加上旧版本C#的正确语法,其中一个你似乎在使用。我目前正在学习C#,我正在尝试制作一个计算器,我尝试使用它,但它不起作用,所以我一定是做错了。我将在我的问题中发布代码我如何修复它?