错误代码:
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。