繁体   English   中英

如果-else语句没有其他

[英]If - else statement without else

有人可以向我解释为什么if-else语句像这样工作并且不抛出错误或错误吗? 如果这在C#中是故意的,是否有人可以解释两者之间是否存在差异?

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

而不是使用

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

由于我注意到我在重新排列代码以使其更具可读性之后,在我的代码中不小心做出了一个if-else语句,就像上面的语句一样。

在第二块

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

...不是else块,而仅仅是代码块。 此处,变量b的作用域仅在块内。 与...相同

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

...只是变量b的范围已更改。

{}定义代码块。 您可能在代码中的任何地方都有这样的块。 这并不意味着您必须在if或之后添加它们。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM