2012-10-12 47 views
6

Possible Duplicate:
Help converting type - cannot implicitly convert type ‘string’ to ‘bool’Không thể chuyển đổi hoàn toàn loại 'int' thành 'bool'

Tôi rất mới với ngôn ngữ n Tôi không phải là một lập trình viên giỏi. Mã này cho tôi lỗi:

cannot implicitly convert type int to bool.

Tôi không chắc mình đang làm gì sai. Một số có thể cho tôi biết tôi đang làm gì sai. Bất kỳ trợ giúp nào cũng sẽ được đánh giá cao bởi bất kỳ ý kiến ​​nào cũng sẽ giúp ích cho bạn.

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

Loại khác nhau, nhưng cùng một ý tưởng. Hãy chú ý đến * trong đó * lỗi là - nó sẽ dẫn bạn đến thẳng vấn đề. –

+0

nơi bạn khai báo biến cho limitOfGuess? – Nich

+0

Tôi tuyên bố nó là một const. Ngay sau khi tuyên bố lớp học. – user1730332

Trả lời

9

Dòng

if (userInput = mag.randomMagnifier()) 

nên

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

đúng này:

if (userInput = mag.randomMagnifier()) 

tới:

if (userInput == mag.randomMagnifier()) 

Tại đây, bạn chỉ định giá trị trong câu hỏi if, điều này sai. Bạn phải kiểm tra điều kiện, để kiểm tra điều kiện u phải sử dụng "==". Câu hỏi
if trả về giá trị boolean và vì bạn đang gán giá trị ở đây, nó sẽ đưa ra lỗi.

3

bạn nên sử dụng == thay vì = thay đổi: Lif(userinput = mag.randommagnifier()) cho

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

Một câu lệnh if luôn chứa một biểu thức mà đánh giá một giá trị boolean. Dòng của bạn

if (userInput = mag.randomMagnifier()) 

không phải là bool đó là nguyên nhân gây ra lỗi. Bạn có thể có nghĩa là

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

Điều kiện

userInput = mag.randomMagnifier() 

cần phải được

userInput == mag.randomMagnifier() 

Những gì bạn đã đang cố gắng gán giá trị userInput và sau đó nó cố gắng để chuyển đổi int để bool. Với C# điều này là không thể.

Các vấn đề liên quan