为什么以下失败:
while (true)
int a;
if(true)
int a;
if(true)
int a = 5;
if(true)
int a = somestaticfunction();
显然,如果失败并显示:Visual Studio 上的“无效嵌入语句错误 88”。
为什么以下失败:
while (true)
int a;
if(true)
int a;
if(true)
int a = 5;
if(true)
int a = somestaticfunction();
显然,如果失败并显示:Visual Studio 上的“无效嵌入语句错误 88”。
这是对正在发生的事情的一个很好的解释,它是语言规范的一部分。似乎Objective C、Java和C也有同样的限制。您可以通过像这样封闭您的陈述来解决它。
while(true)
{int a;}
if(true)
{int a;}
if(true)
{int a = 5;}
if(true)
{int a = somestaticfunction();}
在 C# 中不能这样写。您应该像下面这样更改它,否则它将生成Compiler Error CS1023:它说:
嵌入式语句,例如 if 语句之后的语句,既不能包含声明,也不能包含带标签的语句。
while (true)
{
int a;
}
if(true)
{
int a;
}
if(true)
{
int a = 5;
}
if (true)
{
int a = somestaticfunction();
}