对于案例

时间:2016-12-12 13:25:19

标签: c#

char a = Convert.ToChar("==");
case "==":
if(b==c)
{
    Console.WriteLine("the answer is valid" + b + " " + c);
}

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

1 个答案:

答案 0 :(得分:1)

您有多处错误或误解。

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

  
      
  • String可以是0个或多个字符,并由"(双引号)分隔。
  •   
  • Char正好是1个字符,由'(单引号)分隔。
  •   

此外,语句 char a = Convert.ToChar("==") 会失败,因为在给定字符串时,它只接受长度为1的字符串。"=="的长度为2。

要获得单个字符,请使用以下字符: char a = '='; 或者,如果您从其他地方获取字符串,请使用 char a = str[0];

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

因此 switch 之后使用的类型必须与每个之后使用的类型相同 {{1 }}

如果 case 之后使用的类型为switch,那么每个 char之后的常量也必须是由case(单引号)分隔的字符。