花括号会影响C#的性能吗?

时间:2017-02-04 18:54:38

标签: c#

对于单行if语句,我总是喜欢自己使用花括号。 喜欢

if (condition)
{
   statement;
}

此声明可写为

if(condition)
statement;

if(condition) statement;

我搜索了SO和其他论坛,大多数人都喜欢第一个选项。我知道运行时性能没有影响。 编译时第一种方法是否有任何性能因素。 .NET框架或CLR如何处理if或if-ifif等决策语句?下一个选项(第二个和第三个)是否具有任何类型的增强性能?可能差别可以忽略但我想知道编译器如何处理这种情况。

2 个答案:

答案 0 :(得分:1)

它没有。

C#编译成CIL(通用中间语言),它是"汇编语言"对于CLR(类似于"字节码"在Java世界中)。

在CIL中没有"大括号"的概念。 If-Else代码块用CIL表示,使用" branch"命令,就像条件跳转一样。例如," brc"如果堆栈上的最新值相等,则后跟标签名称将跳转到标签。

因此,如果你不加括号也没关系 - 它将在生成的CIL代码中以相同的方式表达。

答案 1 :(得分:0)

没有。编译完成他的工作后。代码是完全相同的