一个毫无意义的分号是否会对性能产生影响?

时间:2013-05-09 15:32:49

标签: c# performance

有时,我注意到在声明后添加了额外的;

示例:

Console.WriteLine("meow");;

这会影响我应用中的效果吗?具体来说,我想知道C#。

3 个答案:

答案 0 :(得分:9)

不,它被忽略,因为它没有被编译成任何IL。

答案 1 :(得分:4)

无论如何;它不会影响编译器生成的IL代码。

然而,它可能对任何需要维护代码的同事产生性能影响......

您可能有兴趣阅读empty statements,例如

bool ProcessMessage() {...}
void ProcessMessages() {
   while (ProcessMessage())
      ;
}

答案 2 :(得分:1)

没有

考虑冒号是该语言的语法特征。编译器读取您的代码,根据它知道的语法对其进行分析,并计算代码的语义(含义),将它们组织成一个结构(通常是一个名为AST的树)。 这个从那里开始转向目标语言(汇编,字节码,其他语言)中的适当表示 - 而不是代码的格式。

额外的分号不表示额外的指令,它只是语法噪音,所以它甚至不能用于程序的编译器模型。正如你可以从中理解的那样,对于额外的空格,过多的换行等等,也可以这样说。

然而,每种语言都有一些惯例,使熟悉该语言的人更容易理解代码。尊重它们会更好,即使没有语义错误也没有忽略它们的性能损失。在这种情况下,额外的分号确实会困扰另一位读者。

相关问题