2012-10-12 19 views
6

Possible Duplicate:
Help converting type - cannot implicitly convert type ‘string’ to ‘bool’nie można niejawnie przekonwertować typu „int” do „bool”

jestem bardzo nowy w języku n nie jestem dobrym programistą. Ten kod powoduje błąd:

cannot implicitly convert type int to bool.

Nie jestem pewien, co robię źle. Czy ktoś może mi powiedzieć, co robię źle. Jakakolwiek pomoc byłaby doceniona i żadna zalecana pomoc również nie pomogłaby.

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

Inny typ, ale ten sam pomysł. Zwróć uwagę na * gdzie * jest błąd - poprowadzi cię prosto do problemu. –

+0

gdzie zadeklarowałeś zmienną dla limitOfGuess? – Nich

+0

Ogłosiłem to jako const. Zaraz po deklaracji klasy. – user1730332

Odpowiedz

9

Linia

if (userInput = mag.randomMagnifier()) 

powinny być

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

Poprawnie to:

if (userInput = mag.randomMagnifier()) 

do:

if (userInput == mag.randomMagnifier()) 

Tutaj przypisujesz wartość w oświadczeniu if, która jest nieprawidłowa. Musisz sprawdzić stan, dla sprawdzenia stanu musisz użyć "==".
if Instrukcja zwraca wartości logiczne, a ponieważ przypisujesz tutaj wartość, powoduje to błąd.

3

należy użyć == zamiast = zmiana: Lif(userinput = mag.randommagnifier()) dla

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

if zawsze zawiera wyrażenie, którego wynikiem jest wartość logiczna. Twoja linia nie jest nie jest bool co jest przyczyną błędu. Prawdopodobnie oznaczało

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

Warunkiem

userInput = mag.randomMagnifier() 

musi być

userInput == mag.randomMagnifier() 

Co masz próbuje przypisać wartość userinput a następnie próbuje przekonwertować int do bool. Z C# to nie jest możliwe.

Powiązane problemy