C#中“带分号的空行”是什么意思?

我偶然发现了这段代码,并想知道为什么C#编译器不会引发任何警告或错误。 严格地说,我想我正在尝试执行任何事实上无效的事情? (对于空行)

在空白行的半冒号

这是一个空洞的陈述 。 它作为循环体很有用:

while(!Condition()) ; 

在for循环中更常见,其中循环体完全嵌入循环头中。

让我们遍历链表的最后一个元素:

 Node current = head; for (; current.Next != null; current = current.Next) ; return current; 

它看起来有点讨厌,通常我更喜欢编写一个更长但更易读的循环。 C ++人员倾向于将东西塞进循环标题中。

我相信它在代码生成场景中也会派上用场。