无法将类型’string’隐式转换为’int’错误

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Assignment2 { class Program { static void Main(string[] args) { int Value1,Value2,result,a; Console.Write("Enter Value 1: "); Value1 = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter Value 2: "); Value2 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Choose an arithmetic operator:"); Console.WriteLine("\t1. +(add)"); Console.WriteLine("\t2. -(subtract)"); Console.WriteLine("\t3. *(multiply)"); Console.WriteLine("\t4. /(divide)"); Console.Write("\t5. %(mod)"); Console.Write("\n\n"); a = Convert.ToInt32(Console.ReadLine()); switch (a) { case"1": Console.WriteLine("Operator is: Add"); result=Value1+Value2; Console.WriteLine("Result: "+result); break; case"2": Console.WriteLine("Operator is: Subtract"); result=Value1-Value2; Console.WriteLine("Result: "+result); break; case"3": Console.WriteLine("Operator is: Multiply"); result=Value1*Value2; Console.WriteLine("Result: "+result); break; case"4": Console.WriteLine("Operator is: devide"); result=Value1/Value2; Console.WriteLine("Result: "+result); break; case"5": Console.WriteLine("Operator is: mod"); result = Value1 % Value2; Console.WriteLine("Result: "+result); break; } } } } 

我有基本的C#,我尝试制作一个程序,可以运行5个算术运算使用Case语句,在我完成我的编码后…发现5个错误让我卡住..并且输出将总是带有2个结果(即我选择Add..and将出现2输出,它同时加减。有人可以帮我这个吗?

违规代码是您的案例陈述。 a是一个int 。 你的case语句都使用string s。 只需删除数字周围的引号:

 switch(a) { case 1: // some code break; case 2: // some code break; // rest of cases } 

您正在将a转换为int,但您的switch语句将其与字符串匹配。 将其更改为case 1:而不是case "1"来解决问题。

删除引号以防万一。 即

更换case "1": case 1: