{}在C#中做了什么

Dan*_*rex 1 c# curly-braces

这是一个非常简单的问题,但在我向前推进之前我想知道这个问题,所以我理解这个过程.

在我关注的教程中,我使用的是if语句.如果您执行以下代码,则无需使用{}

if (userValue == "1")
    message = "You won a new car!"; 
Run Code Online (Sandbox Code Playgroud)

但是,如果您使用多行代码,则需要{}.

if (userValue == "1")
{
    WriteLine ("You won a new car!");
    ReadLine ();
}
Run Code Online (Sandbox Code Playgroud)

有人可以用非常简单的术语向我解释为什么会这样吗?我只需要一个经验法则,这样我就可以理解为什么.没有什么过于复杂我只是一个初学者.我知道他们识别出一段代码,但我不确定为什么这会对一两行产生影响?

p.s*_*w.g 7

这些被称为.

块允许在允许单个语句的上下文中写入多个语句.

它们用于将一个或多个语句组合在一起.在诸如if语句之类的控制结构中,它们用于使块内的所有语句都有条件,而不仅仅是语句后面的if语句.

块也有自己的范围,这意味着块内定义的变量不能在块外引用,并且单独块中的两个变量是不同的,即使它们具有相同的名称.

大多数编程语言都有某种类型的块,而C#使用花括号来分隔它们的事实将它放在一个语法相关的语言系列中,称为大括号语言,还有C,C++,Java等等.


Mar*_*zek 5

在您的示例中{}指定了一个代码块.您可以轻松地将第一个写为

if (userValue == "1")
{
    message = "You won a new car!"; 
}
Run Code Online (Sandbox Code Playgroud)

有时您可以省略{}when块仅包含一个语句.

if (userValue == "1")
    message = "You won a new car!"; 
Run Code Online (Sandbox Code Playgroud)

但是,大多数人考虑使用括号,即使它们可以作为一种良好的编码实践被省略,因为跳过它们会导致一些错误.为了使它更清楚,请考虑以下代码

if (userValue == "1")
    message = "You won a new car!"; 
    ReadLine();
Run Code Online (Sandbox Code Playgroud)

它相当于

if (userValue == "1")
{
    message = "You won a new car!"; 
}
ReadLine();
Run Code Online (Sandbox Code Playgroud)

什么使ReadLine每次执行,无论userValue价值.这可能不是开发人员的想法.