C# 错误无法将案例的字符串[]隐式转换为字符[]

C# 错误无法将案例的字符串[]隐式转换为字符[],c#,C#,我想知道为什么“Cases”只支持单引号的字符值。为什么不是字符串值?在变量a中,我存储了一个字符串值。您有多个错误或误解 首先,C语言的工作原理如下: 字符串可以是0个或多个字符,并由“(双引号)分隔 Char正好是一个字符,由“(单引号)分隔 此外,语句char a=Convert.ToChar(“==”将失败,因为当给定一个字符串时,它只接受长度为1的字符串。而“==”的长度为2 要获取单个字符,请使用以下命令:字符a='='; 或者,如果您从其他地方获取字符串,请使用char a

我想知道为什么“Cases”只支持单引号的字符值。为什么不是字符串值?在变量a中,我存储了一个字符串值。

您有多个错误或误解


首先,C语言的工作原理如下:

  • 字符串
    可以是0个或多个字符,并由
    (双引号)分隔
  • Char
    正好是一个字符,由
    (单引号)分隔

此外,语句
char a=Convert.ToChar(“==”
将失败,因为当给定一个字符串时,它只接受长度为1的字符串。而
“==”
的长度为2

要获取单个字符,请使用以下命令:
字符a='=';

或者,如果您从其他地方获取字符串,请使用char a=str[0];


最后,switch…case语句可以使用字符串或字符(以及其他类型,例如int或enum),但不能混合在一起

因此,在
开关之后使用的类型必须与每个
案例之后使用的类型相同


如果
开关
后使用的类型是
字符
,则每个
大小写
后的常量也必须是字符,由
分隔(单引号).

您是否切换到
a
?您的C代码无效。请发布您的实际代码。这取决于切换中的类型()语句。如果转换为字符,则大小写为字符。如果类型为字符串,则大小写为字符串。
case
支持
string
,但这取决于输入类型。…开关语句可以由字符串管理:
char a = Convert.ToChar("==");
case "==":
if(b==c)
{
    Console.WriteLine("the answer is valid" + b + " " + c);
}