如果 - else语句没有别的

时间:2015-03-24 10:25:56

标签: c# if-statement

有人可以解释一下为什么if - else语句会像这样工作而不会抛出错误或异常吗?如果这是C#中的故意,有人可以解释2?之间是否存在差异?

if (comboBox1.SelectedIndex == -1) { }
    {
            //code
    }

而不是使用

  if (comboBox1.SelectedIndex == -1) { }
  else {
            //code
       }

因为我注意到在我重新安排代码以使其更具可读性之后,我意外地在代码中创建了一个if - else语句,就像上面那样。

3 个答案:

答案 0 :(得分:6)

中的第二个块
if (comboBox1.SelectedIndex == -1) 
{ 
    var a = 10;
}
{
    var b = 10;
}

...不是else块,而只是一个代码块。这里变量b的范围仅在块内。它与

相同
if (comboBox1.SelectedIndex == -1) 
{ 
    var a = 10;
}
var b = 10;

...除了变量b的范围已更改。

答案 1 :(得分:4)

{}定义了一段代码。您可能在代码中的任何位置都有这样的块。它并不意味着你必须在if或者之后添加它们。

答案 2 :(得分:1)

这是因为您可以在函数中间打开一个新块。这是合法的:

void func()
{
    Console.WriteLine("Hello");
    {
         Console.WriteLine("World");
    }
}

您可以使用这样的内部块来限制变量的范围。

您的第一个代码是if语句,后跟一个代码块(无论if表达式的值如何都会运行)。