none
关于Switch语句语法的一个疑问 RRS feed

  • 问题

  • MSDN中说Switch不允许从一个标签穿越到另一个标签,除非一个标签下没有任何处理代码。
    这可以用于多个情况共用一个处理流程的场景。但是,这是不是太笨拙了呢?

    switch(x)
    {
        case 1:
            //....
            break;
        case 2,3:
            //....
            break;
    }

    微软不允许这么做有什么原因么?

    如果允许直接对一个Case使用多个值难道不更简洁么?

    2009年5月7日 5:19

答案

  • 关于这个:
    {
    case 1:
    //....
    break ;
    case 2,3:
    //....
    break ;
    }
    我感觉他不支持这样的语法,还是因为要顾虑程序员的习惯,所有C语系的都不支持这样的写法,所以才没有设计成这样!
    只是个人的看法,具体是什么原因,只有伟大的Anders才知道啊!
    周雪峰
    • 已标记为答案 泉子 2009年5月8日 8:01
    2009年5月7日 8:35
    版主
  • M大叔也知道啊,资方意见决定一切!
    • 已标记为答案 泉子 2009年5月8日 8:02
    2009年5月7日 8:59
    版主
  • 可以跟微软建议一下!
    这个问题以前提出过, 后来C#的首席设计师 Ander Hejlsberg 说, 他就是设计成这个样子..
    MCPD (Windows & Web)
    • 已标记为答案 泉子 2009年5月8日 8:01
    2009年5月8日 7:43
  • 这么做是沿袭了C、C++的做法。
    是不是有什么其他的情况呢?才保留了下来。

    做最好的自己
    • 已标记为答案 泉子 2009年5月8日 8:02
    2009年5月7日 6:42

全部回复