VB.net里面可以这么写
Case 7, 8, &H7, &H8, &H200, &H2A3
UpdateState()
C#.net 里面如果写这样就会提示Case7,case8已经出现在switch语句中
                case 7:
                case 8:
                case 0x7:
                case 0x8:
                case 0x200:
                case 0x2A3:
                    {
                        UpdateState();
                        break;
                    }这里7,8是十进制数,0x7,0x8是十六进值数.这些值是窗口消息的常量值.我也清楚7和0x7是相同的,但为什么vb不报错,而c#却报错呢?

解决方案 »

  1.   

    一个是SELECT语句一个是SWITCH语句,本身的语法就不同,没有什么可比性。
    VB是在一个CASE中,
    C#是在不同的case中。
      

  2.   

    case "7":
                    case "8":
                    case "0x7":
                    case "0x8":
                    case "0x200":
                    case "0x2A3":
                        {
                            UpdateState();
                            break;
                        }
    转型后再弄呢
      

  3.   

    qhiou(哈哈)
    C#是在不同的case中。
    -------------------------
    可以在一个case中
      

  4.   

    进制不一样,同意godgreat(★★★★★)接触计算机才知道什么叫学海无涯!(★★★) ( ) 信誉:97
      

  5.   

    //十进制转二进制
    Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2));
    //十进制转八进制
    Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8));
    //十进制转十六进制
    Console.WriteLine("十进制166的十六进制表示: "+Convert.ToString(166, 16));
        
    //二进制转十进制
    Console.WriteLine("二进制 111101 的十进制表示: "+Convert.ToInt32("111101", 2));
    //八进制转十进制
    Console.WriteLine("八进制 44 的十进制表示: "+Convert.ToInt32("44", 8));
    //十六进制转十进制
    Console.WriteLine("十六进制 CC的十进制表示: "+Convert.ToInt32("CC", 16));