【问题标题】:Can I have a Switch Statement with more than one Case Criteria?我可以有一个包含多个案例标准的 Switch 语句吗?
【发布时间】:2009-06-08 15:29:37
【问题描述】:

我可以有这样的 switch 语句吗:

...

switch (temp)
{
case "NW" or "New":
temp = "new stuff"
break;
}

...

【问题讨论】:

  • 字符串 temp 怎么可能既是“NW”又是“New”?你的意思是OR?
  • 你的意思不是真的,你是不是,你的意思是 OR - temp to = "NW" 和 "New" 怎么可能?无论如何,请查看所有失败的答案。

标签: c# .net asp.net


【解决方案1】:

不,但您可以使用(至少在 Java 中)

switch (temp) {
    case "NW":
    case "New":
       temp="new stuff";
       break;
}

【讨论】:

  • C# 不允许失败的 case 语句。可能值得添加它。不过,您的答案非常适合 Java:D (+1)
  • @devinb - 抱歉,我不明白这意味着什么。能详细点吗?
  • C# 确实允许在这种特殊情况下失败,如果在特定情况下没有任何内容。所以上面是有效的C#
  • @Martin,你是对的。我会编辑我的评论,但我不能。感谢您指出:)
【解决方案2】:

是的。这就是它的完成方式。

switch (temp)
{
   case "NW":
   case "New":
     temp = "new stuff"
     break;
}

其实我之前就回答过这个问题same question

【讨论】:

    【解决方案3】:

    试试

    switch (temp)
    {
    case "NW":
    case "New":
    temp = "new stuff"
    break;
    }
    

    【讨论】:

      【解决方案4】:

      假设 C#,你想要:

      switch(temp)
      {
          case "NW":
          case "New":
              temp = "new stuff";
              break;
      }
      

      【讨论】:

        【解决方案5】:
        switch (temp) {
            case "NW":
            case "New":
                temp = "new stuff"
                break;
            default:
                Console.WriteLine("Hello, World!");
                break;
        }
        

        【讨论】:

          【解决方案6】:

          我知道你问过关于 C# 的问题,并且在那里有很好的答案,但只是为了透视(以及其他任何可能觉得它有用的阅读者),这是 VB 的答案:

          Select Case temp
            Case "NW", "New"
              temp = "new stuff"
            Case Else
              'something else...
          End Select
          

          请注意,没有“中断”--VB 不会跳过案例。另一方面,您可以在一个 case 上有多个匹配条件。

          小心你不要这样做

          ...
            Case "NW" Or "New"
          ...
          

          你所拥有的是一个条件,在这两个术语之间有一个按位或....

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-06-21
            • 1970-01-01
            • 2017-06-28
            • 1970-01-01
            • 1970-01-01
            • 2015-12-06
            相关资源
            最近更新 更多