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

时间:2015-07-07 20:11:21

标签: c# visual-studio-2012 console-application

            int ValueOne, ValueTwo, Numchar, Total;
        Console.WriteLine("This Is A Program For doing any Of the four mathematical Proccesses");
        Console.WriteLine("You can Add , substract , Divide And Multiply");
        Console.WriteLine("When Asked Please Type The Values Or The Proccesses You Want.");
        Console.WriteLine("Please Type The First Value");
        ValueOne = Convert.ToInt32((Console.ReadLine()));
        Console.WriteLine("Please Type The Second Value");
        ValueTwo = Convert.ToInt32((Console.ReadLine()));
        Console.WriteLine("Please Enter The Number Of The Proccess/Character You Want Meaning That (1 = +) , (2 = -) , (3 = *) , (4 = /)");
        Numchar = Convert.ToInt32((Console.ReadLine()));
        if ((Numchar) = 1)
            Total = ValueOne + ValueTwo;
        if ((Numchar) = 2)
            Total = ValueOne + ValueTwo;
        if ((Numchar) = 3
            Total = ValueOne * ValueTwo;
                if ((Numchar) = 4
                    Total = ValueOne / ValueTwo; 

这是一个使用c#的控制台应用程序, 给我的错误是: “如果((NumChar)=(数字)” 我是视觉工作室的初学者,我刚开始参加课程

3 个答案:

答案 0 :(得分:1)

if ((Numchar) = 1)

应该是

if (Numchar == 1)

=用于分配值

==用于比较值

编辑:正如评论所指出的那样,你错过了第3和第4句中的右括号

if ((Numchar) = 3

应该是

if (Numchar = 3)

并将括号放在Numchar周围,它们毫无意义

答案 1 :(得分:0)

使用==进行比较。例如:

if ((Numchar) == 2)
    Total = ValueOne + ValueTwo;

当您使用单个相等时,您将为Numchar分配一个值,并返回该新值(在本例中为 int

看起来你可能习惯了VB(基于你的变量名等)。 Telerik有一个很好的VB到C#代码转换器,你可以用它来仔细检查你的结果,在这里:

http://converter.telerik.com/

答案 2 :(得分:0)

您正在分配值,而不是比较它。使用==进行比较