C# 。在switch语句中出现无法访问的代码错误

时间:2017-01-26 21:41:11

标签: c#

我在下面的代码中检测到无法访问的代码错误。 任何研究都可以指导这个问题,我会从心底获得一堆感谢

public decimal SetDiscountLevel()
{
  int range= spentAmount/500;    
  switch(range)
  { 
    case 0: 
       return 0;
       break;
    case 1:
       return 0.05m;
       break;
    case 2:
       return 0.06m;
       break;
    case 3:
       return 0.08m;
       break;
    default:
       return 0.1m;
       break;

  }      
}

2 个答案:

答案 0 :(得分:3)

返回关键字后删除中断; ,因为如果您使用返回; 以防中断; 将没有达到,因为你刚刚用 return; 关键字停止执行循环。

见下面的代码

    public decimal SetDiscountLevel()
{
   int range= spentAmount/500;    
   switch(range)
     { 
        case 0: 
           return 0;
        case 1:
           return 0.05m;
        case 2:
           return 0.06m;
        case 3:
           return 0.08m;
        default:
           return 0.1m;

     }      
}

答案 1 :(得分:3)

在每种情况下,您都会立即返回一个值,这意味着永远不会执行以下中断。

只需执行以下操作

public decimal SetDiscountLevel()
{
   int range= spentAmount/500;    
   switch(range)
     { 
        case 0: 
           return 0;
        case 1:
           return 0.05m;
        case 2:
           return 0.06m;
        case 3:
           return 0.08m;
        default:
           return 0.1m;
     }      
}