为什么以下失败:
while (true)
int a;
if(true)
int a;
if(true)
int a = 5;
if(true)
int a = somestaticfunction();
如果失败,则显然是:“无效的嵌入语句错误88” 在视觉工作室。
答案 0 :(得分:6)
以下是good explanation正在发生的事情,它是语言规范的一部分。看来Objective C,Java和C也有同样的限制。您可以通过附上您的陈述来解决这个问题。
while(true)
{int a;}
if(true)
{int a;}
if(true)
{int a = 5;}
if(true)
{int a = somestaticfunction();}
答案 1 :(得分:0)
它不能像C#那样写。您应该像下面一样更改它,否则它将生成Compiler Error CS1023:,其中包含:
嵌入式语句,例如if后面的语句 声明,既不包含声明也不包含标签声明。
while (true)
{
int a;
}
if(true)
{
int a;
}
if(true)
{
int a = 5;
}
if (true)
{
int a = somestaticfunction();
}