有时,我注意到在声明后添加了额外的;
。
示例:
Console.WriteLine("meow");;
这会影响我应用中的效果吗?具体来说,我想知道C#。
答案 0 :(得分:9)
不,它被忽略,因为它没有被编译成任何IL。
答案 1 :(得分:4)
无论如何;它不会影响编译器生成的IL代码。
然而,它可能对任何需要维护代码的同事产生性能影响......
您可能有兴趣阅读empty statements,例如
bool ProcessMessage() {...}
void ProcessMessages() {
while (ProcessMessage())
;
}
答案 2 :(得分:1)
没有
考虑冒号是该语言的语法特征。编译器读取您的代码,根据它知道的语法对其进行分析,并计算代码的语义(含义),将它们组织成一个结构(通常是一个名为AST的树)。 这个从那里开始转向目标语言(汇编,字节码,其他语言)中的适当表示 - 而不是代码的格式。
额外的分号不表示额外的指令,它只是语法噪音,所以它甚至不能用于程序的编译器模型。正如你可以从中理解的那样,对于额外的空格,过多的换行等等,也可以这样说。
然而,每种语言都有一些惯例,使熟悉该语言的人更容易理解代码。尊重它们会更好,即使没有语义错误也没有忽略它们的性能损失。在这种情况下,额外的分号确实会困扰另一位读者。