C# 无法隐式转换类型';字符串';至';int';错误

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.

我有基本的C#,我试着做一个程序,在我完成编码后,用Case语句运行5个算术运算。我发现了5个错误,使我卡住了。输出结果总是2个(也就是说,我选择Add.。然后会出现2个输出,它的Add和subtract同时出现。有人能帮我吗?

有问题的代码是您的case语句。
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
}