C# 如何检查变量是否等于字符串或int?

C# 如何检查变量是否等于字符串或int?,c#,C#,例如,假设我有一个名为input的和int。然后我得到了它的输入。像这样: input = Console.ReadLine(); 但是当用户收到提示时,输入是一个字符串,然后它会出现错误并导致程序崩溃。如何检查是否为输入输入了字符串 是否有类似于if(input.equals(string))之类的选项 编辑:我试着做了三巴塞,但我认为我做错了。我把代码贴在下面 string numberOne; string numberTwo; double answer;

例如,假设我有一个名为input的和int。然后我得到了它的输入。像这样:

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()的程序