在C#.net中允许双半冒号(;;)?

时间:2014-12-17 11:01:06

标签: c# .net

在写一些代码的时候,我意外地在一个语句的末尾放了两个半冒号。我很惊讶它并没有给出任何错误。我的意思是允许双半结肠的目的是什么?它实际意味着什么以及它在任何特定的编程方法中如何有用?

2 个答案:

答案 0 :(得分:4)

因为;只是一个空语句,换句话说是null statement。它通常没用但完全有效。

这用于你想要重复执行但不想添加循环体的循环中。如下例所示:

for ( i = 0; i < 10; line[i++] = 0 )
 ;

然而,在你的情况下,第一个分号是语句的结尾,第二个是空语句。它是无用的,编译器会忽略它。

答案 1 :(得分:2)

;;只是一个语句的结尾,后跟一个空语句。就像Oracle支持null;一样。其他平台也这样做。

有时您不希望根据规范执行操作,例如ifwhile等。

if (SomeAction())
  ;
else
  SomethingElse();

当然应该写成:

if (!SomeAction())
  SomethingElse();

在一般的空语句之后支持;;作为语句结束可能更容易,而不是支持您想要允许它的所有特定方案。

相关问题