有时,我注意到我在声明之后添加了一个附加;
内容。
例子:
Console.WriteLine("meow");;
这会影响我的应用程序的性能吗?具体来说,我想知道 C#。
有时,我注意到我在声明之后添加了一个附加;
内容。
例子:
Console.WriteLine("meow");;
这会影响我的应用程序的性能吗?具体来说,我想知道 C#。
不,它被忽略,因为它没有被编译到任何 IL 中。
没有任何; 它不会影响编译器生成的 IL 代码。
但是,它可能会对任何必须维护您的代码的同事产生性能影响......
您可能有兴趣阅读有关空语句的内容,例如
bool ProcessMessage() {...}
void ProcessMessages() {
while (ProcessMessage())
;
}
不。
考虑冒号是语言的句法特征。编译器读取您的代码,根据它知道的语法对其进行分析,并计算代码的语义(含义),将它们组织成一个结构(通常是称为 AST 的树)。从那里开始,这就是转换为目标语言(汇编、字节码、其他语言)的适当表示形式——而不是代码的格式。
额外的分号并不表示额外的指令,它只是句法噪音,因此它甚至不会出现在程序的编译器模型中。正如您可以从中理解的那样,对于额外的空格、过多的换行符等也可以这样说。
然而,每种语言都有一些约定,使熟悉该语言的人更容易阅读代码。最好尊重它们,即使没有语义错误,也不会因为忽略它们而造成性能损失。在这种情况下,额外的分号确实会让其他读者感到困惑。