学习中写的一段代码,为什么在vs2005 中可以正常编译,在vs2005 命令揭示无法正常编译,提示:检测到无法访问的代码。
代码如下:
using System;
using System.Collections.Generic;
using System.Text;class Hello
{
enum Loveyou 
{
lovea = 10,
loveb =12,
lovec =30,
loved =39,
}
  const int a =39 ;
static void Main()
{
  switch (a)
  {
  case (int) Loveyou.lovea :
  Console.WriteLine( "是 lovea ! \n");
  break;
  case (int) Loveyou.loveb :
  Console.WriteLine("是 loveb ! \n" );
     break;
 case (int) Loveyou.lovec :
 Console.WriteLine("是lovec ! \n");
 case (int) Loveyou.loved:
 Console.WriteLine(" 是loved ! \n");
    break;
    }
Console.WriteLine ( "Thank you ");
}
};

解决方案 »

  1.   

    case 需要常量比如int b=(int)Loveyou.lovea;
    switch(b)
    {
       case 10:
         break;
       ......
    }
      

  2.   

    vs.net下也不行
    因为a 是const switch 就没有意义了
    改成
    int c = a;
    switch (c)
                  {
                  case (int) Loveyou
      

  3.   

    问题已经解决了,switch 不能接受常量,去掉const  就可以了  int a =39 ;
     switch (a)
    {