解决使用switch case时A constant value is expected的问题

错误代码:

public void Test(int flag)
{
     int[] results = new int[] { 1, 2, 3, 4, 5, 6 };

     switch (flag)
     {
         case results[0]:
             //相应操作
             break;
     }
 }

这时你就会发现case语句编译错误

错误原因:

switch-label:
    case constant-expression:
    default:

简单地说,case标签必须是编译时的常量。注意results[0]不是编译时常量(您可能觉得它看起来是常量,但这并不是因为它不能在编译时被完全计算)。

您需要将其重新编码为if / else if / else

你可能感兴趣的:(C#)