2014-10-06 40 views
-6

的操作数我正在编写一个程序,在那里我想到一个数字,并且计算机会猜测它。我一直在努力测试它,但是我不断收到一个错误,我不应该这样做。错误是题目标题。我用Int.Parse转换我的字符串,但我不知道为什么我得到错误。我知道它说'=='不能用于整数,但是我在网上看到的所有内容以及我班的幻灯片都使用它,所以我被卡住了。代码是不完整的,我不想让它运行,我只是想解决这个问题。我非常感谢任何帮助,谢谢:D运算符'=='不能应用于类型'int'和'字符串

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") 
+0

错误消息试图说些什么。它是什么? - 请注意,它不会*说“不能与*整数*一起使用”。 – user2864740 2014-10-06 00:54:47

回答

6

你要求一个数字,但你想要与非数字数据进行比较。忘记语言语义,您如何期望比较号码文字?如果像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值会转换为文字“你好”。保证if块内的任何代码都不会执行。你不妨写if (false)

0

你为什么要比较一个整数字符串?更高的是只有一个字符串,不能变成一个整数,只能是一个数字。

但我认为你可能还需要什么的ToString()

用法:

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

'int'没有'tostring'成员。 (我认为你的意思是'ToString()'。)C#是区分大小写的;你不能用小写来写所有的东西,你必须通过添加'()'来调用'int.ToString',否则表达式会产生一个*方法组*。 – cdhowie 2014-10-06 00:25:49

+0

仍然错误。我会自己修复它。 :) – cdhowie 2014-10-06 00:27:27

+0

@cdhowie自从我做了C#以来已经有很多年了,但是感谢您的纠正 – 2014-10-06 00:27:30

相关问题