无论多少;如果放在C#代码行的末尾,编译器将不会显示错误并且构建成功。
几乎所有其他语言,如C,C ++和Java。这是不允许的。
与Eric的博客有趣的是,为什么这不是一个警告。
来自Eric Lippert的博客“我经常被问到为什么一大块难闻的代码不会产生编译器警告。”
http://blogs.msdn.com/b/ericlippert/archive/2011/03/03/danger-will-robinson.aspx
关键是,编译团队是否可以利用宝贵的时间来引入这样的警告?
你认为这种模式在C,C ++和Java中是非法的论点是完全错误的。
我推荐你:
C编程语言,第2版,A9.2节:
......这个结构被称为空语句;它通常用于向迭代语句提供空体...
C ++编程语言,第2版,第r.6.2节
表达式为missing的表达式语句称为null语句;它很有用......为迭代语句提供一个空体...
Java语言规范,第1版,第14.5节
空语句什么都不做。
C#语言规范,第4版,第8.3节:
如果在需要语句的上下文中没有要执行的操作,则使用空语句。
空声明:
http://msdn.microsoft.com/en-us/library/aa664739(v=vs.71).aspx
不管你有多少 - 仍然什么都不做......
你可以在C / C ++中做同样的事情,也可能是Java:
为什么不? ;
在许多形式的代码流中划分语句。单个;
本身就意味着“这里没有任何事情发生”。把一堆;
s放在一起仍然会导致,没有任何事情发生!
;
是一个空洞的陈述,它是完全合法的。你对一系列连续的;
有什么异议? :-)
添加多个;意味着你添加空语句。他们是合法的。
在C,C ++,C#和Java中都允许使用空语句(前面没有任何内容的分号)。
它导致空白命令,这就是全部。可能微软决定让他们闪亮的语言出现空白,如果这是程序员想要的话。 :)
作为优化的一部分,编译器很可能正在删除/忽略它们。
另外,考虑使用换行符或空格来标记代码块结尾而不是分号的语言。在这些语言中,留空行并不是错误。