CS0019运算符不能应用于’bool’和’int’类型的操作数

该计划是对作业的回应:

“创建一个名为Sum()的方法,它接受任意数量的整数参数并显示它们的总和。编写一个Main()方法,演示当传递一个,三个,五个或十个整数数组时Sum()方法正常工作将程序保存为UsingSum.cs 。“

来自Microsoft®VisualC#®2008, 面向对象编程简介,3e,Joyce Farrell

我在“//步骤1:”部分中的代码是获得CS0019错误,该错误表明它不能应用于boolint类型的操作数。

我非常怀疑这段代码还存在其他问题,但它比我四小时前的情况有了很大的改进……

 using System; public class UsingSum { public static void Main() { Sum(); } public static void Sum() { // Step 1: Addition of one, three, five bool q, r, s; int firstTotal, n, o, p; string k, l, m; Console.Write("Type the number 1: "); k = Console.ReadLine(); n = Convert.ToInt32(k); q = Convert.ToBoolean(k); Console.WriteLine(); if (q == 1) Console.WriteLine("Input accepted."); else if (!(q == 1)) { Console.WriteLine("Error: You didn't type the number 1. Please try again."); Console.Write("Type the number 1: "); k = Console.ReadLine(); n = Convert.ToInt32(k); q = Convert.ToBoolean(k); } } Console.Write("Type the number 3: "); l = Console.ReadLine(); r = Convert.ToBoolean(l); o = Convert.ToInt32(l); Console.WriteLine(); if (r = 4) { Console.WriteLine("Error: You didn't type the number 3. Please try again."); Console.Write("Type the number 3: "); l = Console.ReadLine(); r = Convert.ToBoolean(l); o = Convert.ToInt32(l); } else if (r = 3) Console.WriteLine("Input accepted."); Console.Write("Type the number 5: "); m = Console.ReadLine(); p = Convert.ToInt32(m); s = Convert.ToBoolean(m); Console.WriteLine(); if (s = 6) { Console.WriteLine("Error: You didn't type the number 5. Please try again."); Console.Write("Type the number 5: "); m = Console.ReadLine(); p = Convert.ToInt32(m); s = Convert.ToBoolean(m); } else if (s = 5) Console.WriteLine("Input accepted."); firstTotal = n + o + p; Console.WriteLine("{0} + {1} + {2} = {3}", n, o, p, firstTotal); // Step 2: Entering integers for array[10] int a, arrayTotal, b, c, d, e, f, g, h, i, j, unlimited; Console.Write("Enter first integer for addition: "); a = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter second integer for addition: "); b = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter third integer for addition: "); c = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter forth integer for addition: "); d = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter fifth integer for addition: "); e = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter sixth integer for addition: "); f = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter seventh integer for addition: "); g = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter eighth integer for addition: "); h = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter ninth integer for addition: "); i = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter tenth integer for addition: "); j = Convert.ToInt32(Console.ReadLine()); arrayTotal = a + b + c + d + e + f + g + h + i +j; Console.WriteLine("The total of {0} + {1} + {2} + {3} + {4} + {5} + {6} + {7} + {8} + {9} = {10}", a, b, c, d, e, f, g, h, i, j, arrayTotal); // Step 3: Unlimited array addition int[] arrayTwo; int total, y; string ADD, x; while(Console.Write("Enter an integer for addition, or type ADD to calculate the sum: ")) { x = Console.ReadLine(); y = Convert.ToInt32(x); if (x == ADD) Console.WriteLine("Calculating the total sum"); } for (y = 0; y < arrayTwo.Length; ++y) { total = arrayTwo[y] + arrayTwo[y]; ++arrayTwo[y]; Console.WriteLine("========================"); Console.WriteLine("=/n= The total is: {0} =/n=", total); Console.WriteLine("========================"); } } } 

你不能在C#中写(q == 1) ,因为qbool1int

q只能与另一个布尔表达式进行比较,例如truefalse ,另一个布尔变量等。

如果有人读了这个问题并且需要将boolint进行比较:

 (Convert.ToInt32(q) == 1)