2012-10-12 11 views
6

Possible Duplicate:
Help converting type - cannot implicitly convert type ‘string’ to ‘bool’No se puede convertir implícitamente el tipo 'int' a 'bool'

soy muy nuevo en el idioma n no soy un buen programador. Este código me da error:

cannot implicitly convert type int to bool.

No estoy seguro de lo que estoy haciendo mal. ¿Pueden algunos decirme lo que estoy haciendo mal? Cualquier ayuda sería apreciada y cualquier recomendación también ayudaría.

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()) 
        { 
       } 
       } 

      } 


      } 
       } 
+0

Diferente tipo, pero la misma idea. Preste atención a * donde * el error es - lo guiará directamente al problema. –

+0

donde declaraste la variable para limitOfGuess? – Nich

+0

Lo declare como una const. Justo después de la declaración de la clase. – user1730332

Respuesta

9

La línea

if (userInput = mag.randomMagnifier()) 

debería ser

if (userInput == mag.randomMagnifier()) 
11

correcta esto:

if (userInput = mag.randomMagnifier()) 

a:

if (userInput == mag.randomMagnifier()) 

Aquí está asignando el valor en la instrucción if, que es incorrecto. Debe verificar la condición, para verificar la condición debe usar "==".
if declaración devuelve valores booleanos, y porque está asignando valor aquí, está dando el error.

3

se debe utilizar en lugar de == = cambio: Lif(userinput = mag.randommagnifier()) para

if(userinput == mag.randommagnifier()) 
3

Una sentencia if siempre contiene una expresión que se evalúa como un valor booleano. Su línea

if (userInput = mag.randomMagnifier()) 

no es un bool que es lo que está causando el error. Probablemente quería decir

if (userInput == mag.randomMagnifier()) 
3

La condición

userInput = mag.randomMagnifier() 

necesidades para ser

userInput == mag.randomMagnifier() 

lo que tienes es intentando asignar el valor userInput y luego se intenta convertir el int a bool. Con C# esto no es posible.

Cuestiones relacionadas