-1

有时,我注意到我在声明之后添加了一个附加;内容。

例子:

Console.WriteLine("meow");;

这会影响我的应用程序的性能吗?具体来说,我想知道 C#。

4

3 回答 3

9

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

于 2013-05-09T15:33:35.903 回答
4

没有任何; 它不会影响编译器生成的 IL 代码。

但是,它可能会对任何必须维护您的代码的同事产生性能影响......

您可能有兴趣阅读有关空语句的内容,例如

bool ProcessMessage() {...}
void ProcessMessages() {
   while (ProcessMessage())
      ;
}
于 2013-05-09T15:33:56.507 回答
1

不。

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

额外的分号并不表示额外的指令,它只是句法噪音,因此它甚至不会出现在程序的编译器模型中。正如您可以从中理解的那样,对于额外的空格、过多的换行符等也可以这样说。

然而,每种语言都有一些约定,使熟悉该语言的人更容易阅读代码。最好尊重它们,即使没有语义错误,也不会因为忽略它们而造成性能损失。在这种情况下,额外的分号确实会让其他读者感到困惑。

于 2013-05-09T15:41:57.450 回答