有人可以解释一下为什么if - else语句会像这样工作而不会抛出错误或异常吗?如果这是C#中的故意,有人可以解释2?之间是否存在差异?
if (comboBox1.SelectedIndex == -1) { }
{
//code
}
而不是使用
if (comboBox1.SelectedIndex == -1) { }
else {
//code
}
因为我注意到在我重新安排代码以使其更具可读性之后,我意外地在代码中创建了一个if - else语句,就像上面那样。
答案 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表达式的值如何都会运行)。