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

7
可能重复:帮助转换类型-无法隐式转换类型'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())
                   {
                }
               }

           } 


           }
                } 

你在哪里声明了limitOfGuess变量? - Nich
不同的类型,但是相同的思路。注意 错误发生的位置 - 这会直接带你找到问题所在。 - user166390
我将它声明为一个常量。紧接着类的声明。 - user1730332
5个回答

13

请纠正这个错误:

if (userInput = mag.randomMagnifier())

收件人:

if (userInput == mag.randomMagnifier())

在这里,你正在在if语句中分配值,这是错误的。你必须检查条件,为了检查条件,你必须使用"=="
if语句返回布尔值,因为你在这里赋值,所以会出现错误。


11
该行。
if (userInput = mag.randomMagnifier())

应该是

if (userInput == mag.randomMagnifier())

3

如果语句总是包含一个表达式,该表达式会被求值为一个布尔值。你的代码中

if (userInput = mag.randomMagnifier())

"is not a bool"不是布尔类型,这是导致错误的原因。你可能意思是


if (userInput == mag.randomMagnifier())

3
该条件
userInput = mag.randomMagnifier() 

需要被

userInput == mag.randomMagnifier()

你尝试给userInput赋值,然后将int转换为bool。在C#中这是不可能的。


3

你应该使用 == 而不是 =,修改为:Lif(userinput == mag.randommagnifier())

if(userinput == mag.randommagnifier())

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接