操作员'==';不能应用于类型为';int';和';一串

本文关键字:int 一串 不能 操作员 应用于 类型 | 更新日期: 2023-09-27 18:25:35

我正在写一个程序,我想到一个数字,计算机猜测它。我试图在进行测试的过程中测试它,但我一直得到一个不应该出现的错误。错误是主题标题。我使用Int.Parse来转换字符串,但我不知道为什么会出现错误。我知道上面写着"=="不能与整数一起使用,但我在网上看到的所有东西加上课堂上的幻灯片都使用了它,所以我陷入了困境。代码不完整,我还不想让它运行,我只想解决这个问题。我非常感谢任何帮助,谢谢:D

class Program
{
    static void Main(string[] args)
    {
        Console.Write("Enter any number after 5 to start: ");
        int answer = int.Parse(Console.ReadLine());
        {
            Console.WriteLine("is it 3?");
            if (answer == "higher")

操作员'==';不能应用于类型为';int';和';一串

您要求一个数字,但却试图将其与非数字数据进行比较。忘记语言语义,如何将数字文本进行比较问3这样的数字是否等于"更高"是什么意思?

答案是,这是荒谬的;这是该语言不允许的原因之一。

int a = 1;
string b = "hello";
if (a == 1)       { /* This works; comparing an int to an int */ }
if (a == "hello") { /* Comparing an int to a string!? This does not work. */ }
if (b == 1)       { /* Also does not work -- comparing a string to an int. */ }
if (b == "hello") { /* Works -- comparing a string to a string. */ }

您可以通过将数字转换为字符串来强制编译比较:

if (answer.ToString() == "higher")

但这个条件永远不会满足,因为没有int值可以转换为文本"hello"。if块内的任何代码都将被保证永远不会执行。你不妨写if (false)

为什么要将整数与字符串进行比较?Higher只是一个字符串,不能转换成一个只包含数字的整数。

但我想你可能也想要ToString()

用法:

int x = 5;
string y = x.ToString();
Console.WriteLine(y);