Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#中带有多个常量表达式的Switch语句。可能吗?_C#_Switch Statement - Fatal编程技术网

c#中带有多个常量表达式的Switch语句。可能吗?

c#中带有多个常量表达式的Switch语句。可能吗?,c#,switch-statement,C#,Switch Statement,可能重复: 是否可以执行多常量表达式开关语句,如 switch (i) { case "run","notrun", "runfaster": //Something like this. DoRun(); break; case "save": DoSave(); break; default: InvalidCommand(command); break; } 。可以对同一节使用多个大小写标签

可能重复:

是否可以执行多常量表达式开关语句,如

switch (i) {
   case "run","notrun", "runfaster": //Something like this.
      DoRun();
      break;
   case "save":
      DoSave();
      break;
   default:
      InvalidCommand(command);
      break;
   }
。可以对同一节使用多个大小写标签:

switch (i) 
{  
    case "run": 
    case "notrun":
    case "runfaster":   
        DoRun();  
        break;  
    case "save":  
        DoSave();  
        break;  
    default:  
        InvalidCommand(command);  
        break;  
}  

我注意到您将其概念化为一个C样式开关,其中存在“fall-through”,标签之间的间隙可以为空。在C#中思考这个问题的一个更好的方法是,每个部分都有一个或多个标签,并且各部分之间没有任何漏洞。@Eric:你是对的,这是一个更清晰的视角,没有任何误解的余地。“失败”的比喻是一种粘性的比喻,一种强烈的视觉化,很难动摇。而且,当我们挑剔的时候,案例标签是“案例标签”,而不是“案例陈述”。它们不是声明;只要声明是合法的,他们就不合法。