无效的嵌入语句错误88

时间:2012-06-10 14:49:55

标签: c#

为什么以下失败:

while (true)
   int a;

if(true)
   int a;

if(true)
   int a = 5;

if(true)
  int a = somestaticfunction();

如果失败,则显然是:“无效的嵌入语句错误88” 在视觉工作室。

2 个答案:

答案 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();
}