如果没有大括号的代码块,C# 是不是支持?
Posted
技术标签:
【中文标题】如果没有大括号的代码块,C# 是不是支持?【英文标题】:Does C# support if codeblocks without braces?如果没有大括号的代码块,C# 是否支持? 【发布时间】:2011-05-19 18:05:30 【问题描述】:C# 将如何编译它?
if (info == 8)
info = 4;
otherStuff();
它会在代码块中包含后续行吗?
if (info == 8)
info = 4;
otherStuff();
还是只需要下一行?
if (info == 8)
info = 4;
otherStuff();
【问题讨论】:
【参考方案1】:它像 C/C++ 和 Java 一样工作。没有花括号,它只包含下一条语句。
【讨论】:
你相信用大括号,它也只运行下一条语句吗?【参考方案2】:if (info == 8)
info = 4;
otherStuff();
【讨论】:
【参考方案3】:它只占用下一行,因此您的示例将编译为第二个可能的结果示例。
【讨论】:
【参考方案4】:是的,它支持不带大括号的 if 代码块,只有 if 之后的第一条语句才会包含在 if 块中,就像在第二个示例中一样
【讨论】:
【参考方案5】:是的,它支持它——但它需要下一个语句,而不是下一个行。比如:
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
语句的主体周围加上大括号,而且我遇到的大多数编码约定都采用相同的方法。
【讨论】:
【参考方案6】:在 C# 中,if 语句基于括号运行命令。如果没有给出括号,则如果语句为真,它将运行下一个命令,然后运行之后的命令。如果条件为假,则继续执行下一个命令
因此
if( true )
method1();
method2();
将与
相同if( true )
method1();
method2();
【讨论】:
以上是关于如果没有大括号的代码块,C# 是不是支持?的主要内容,如果未能解决你的问题,请参考以下文章