如果没有大括号的代码块,C#是否支持?

时间:2010-12-03 13:15:56

标签: c# compilation codeblocks conditional-statements

C#如何编译?

if (info == 8)
    info = 4;
otherStuff();

它会包含代码块中的后续行吗?

if (info == 8)
{
    info = 4;
    otherStuff();
}

或者它只需要下一行吗?

if (info == 8)
{
    info = 4;
}
otherStuff();

7 个答案:

答案 0 :(得分:38)

是的,它支持它 - 但它需要下一个语句,而不是下一个。例如:

int a = 0;
int b = 0;
if (someCondition) a = 1; b = 1;
int c = 2;

相当于:

int a = 0;
int b = 0;
if (someCondition)
{
    a = 1;
}
b = 1;
int c = 2;

我个人总是在if语句的主体周围加上大括号,而且我遇到的大多数编码约定采用相同的方法。

答案 1 :(得分:7)

if (info == 8)
{
    info = 4;
}
otherStuff();

答案 2 :(得分:4)

它的工作方式类似于C / C ++和Java。没有curlies,它只包括下一个声明。

答案 3 :(得分:1)

是的,它支持如果没有大括号的代码块,只有if之后的第一个语句将包含在if块中,就像在你的第二个例子中一样

答案 4 :(得分:0)

当然“if”仅适用于“info = 4”。

答案 5 :(得分:0)

它只需要下一行,因此您的示例将编译为第二个可能的结果示例。

答案 6 :(得分:0)

在C#中,if语句基于括号运行命令。如果没有给出括号,如果该语句为true则运行下一个命令,然后运行命令。如果条件为假,则继续执行下一个命令

因此

if( true )
    method1();
method2();

相同
if( true )
{
    method1();
}
method2();