无法将类型’int’隐式转换为’bool’

可能重复:
帮助转换类型 – 不能隐式地将类型’string’转换为’bool’

我对语言很新,我不是一个优秀的程序员。 这段代码给了我错误:

不能隐式地将int类型转换为bool。

我不确定我做错了什么。 有些人可以告诉我我做错了什么。 任何建议也会有所帮助。

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class mysteryVal { public const int limitOfGuess = 5; // Data member public int mystVal; private int numOfGuess ; private randomNumberMagnifier mag = new randomNumberMagnifier(); public int randomMag(int num) { return num + mystVal; } // Instance Constructor public mysteryVal() { mystVal = 0; numOfGuess = 0; } public void game(int user) { int userInput = user; if (numOfGuess < limitOfGuess) { numOfGuess++; if (userInput = mag.randomMagnifier()) { } } } } } 

这条线

 if (userInput = mag.randomMagnifier()) 

应该

 if (userInput == mag.randomMagnifier()) 

纠正这个:

 if (userInput = mag.randomMagnifier()) 

至:

 if (userInput == mag.randomMagnifier()) 

在这里,您要在if语句中分配值,这是错误的。 你必须检查条件,检查条件你必须使用"=="
if语句返回布尔值,并且因为你在这里赋值,它给出了错误。

if语句始终包含一个表达式,该表达式的计算结果为布尔值。 你的路线

 if (userInput = mag.randomMagnifier()) 

不是导致错误的bool 。 你可能意味着

 if (userInput == mag.randomMagnifier()) 

条件

 userInput = mag.randomMagnifier() 

需要是

 userInput == mag.randomMagnifier() 

您所拥有的是尝试分配userInput值,然后尝试将int转换为bool。 使用C#,这是不可能的。

你应该使用==而不是= change: Lif(userinput = mag.randommagnifier())

 if(userinput == mag.randommagnifier())