C# 无法隐式转换类型';字符串';至';int';错误
我有基本的C#,我试着做一个程序,在我完成编码后,用Case语句运行5个算术运算。我发现了5个错误,使我卡住了。输出结果总是2个(也就是说,我选择Add.。然后会出现2个输出,它的Add和subtract同时出现。有人能帮我吗?有问题的代码是您的case语句。C# 无法隐式转换类型';字符串';至';int';错误,c#,C#,我有基本的C#,我试着做一个程序,在我完成编码后,用Case语句运行5个算术运算。我发现了5个错误,使我卡住了。输出结果总是2个(也就是说,我选择Add.。然后会出现2个输出,它的Add和subtract同时出现。有人能帮我吗?有问题的代码是您的case语句。a是一个int。您的case语句都使用strings。只需删除数字周围的引号: using System; using System.Collections.Generic; using System.Linq; using System.
a
是一个int
。您的case语句都使用string
s。只需删除数字周围的引号:
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;
}
}
}
}
您正在将
a
转换为int,但您的switch语句正在将其与字符串相匹配。请将其更改为case 1:
而不是case“1”
,以解决问题。在case中删除引号。即
更换
案例“1”:
案例1:删除案例
语句中数字周围的引号。您希望将它们视为整数,而不是字符串。非常感谢!我没想到引号会出错,因为我只是按照注释中的内容。在注释中,他们在该案例上加了引号(即案例“1”):…再次感谢..现在我的编码100%完成了。:)
switch(a)
{
case 1:
// some code
break;
case 2:
// some code
break;
// rest of cases
}