<分区>
我有两个函数,一个可以编译,一个不可以。有什么区别?
函数编号 1 是否假设情况 1 总是会被命中,或者它只是一个编译器问题?
public void Test(int x)
{
switch (x)
{
case 1:
uint cId = (uint)3;
break;
case 2:
cId = (uint)5; //NO ERROR HERE. WHY?
break;
}
}
public void DeclaringInsideSwitch(int x)
{
uint tst = 0;
switch (x)
{
case 1:
int y = 3;
uint variable = tst;
break;
case 2:
variable++; //ERROR HERE. WHY?
break;
}
}
我当然尝试搜索“在 C# 中的 switch case 内声明变量”,但对我来说,它现在似乎是 C# 中的某种错误,为向后兼容而保留。
// 在收到已回答的警告后,我的问题现在可以简化为真正的问题。
为什么:
int x;
x++;
这行不通吗?