这个If语句如何编译没有任何错误?

时间:2017-11-15 09:37:59

标签: c# compilation

当我解决合并冲突时,看来,其中一个冲突是由我的一个代码段中的git自动解决的。

合并冲突后呈现的代码是:

if(condition1)
{
   //Statement 1

}
{
  //Statement 2

}

编译并运行的代码没有任何错误。声明2代码片段是else吗?如果是,那么else关键字的用途是什么?

2 个答案:

答案 0 :(得分:1)

没有第二个{}不是else语句,但只是定义了一个范围,你是否尝试删除大括号并再次检查输出?

答案 1 :(得分:0)

您所获得的是if语句,后跟一个块语句。块语句引入了一个新的范围。它们是两个独立的结构。

如果要限制代码中对象的生命周期,引入块语句通常很有用。例如,您可能只想获取函数的一部分锁:

void DoSomething()
{
  // Stuff
  // Stuff
  // Stuff

  {
    Lock lock(mutex);    
  }

  // Stuff
  // Stuff
  // Stuff
}