我偶然发现了这段代码,并想知道为什么C#编译器不会引发警告或错误。严格地说,我想我正在尝试执行实际上无效的任何事情? (对于空行)
答案 0 :(得分:4)
这是空声明。它作为循环体很有用:
while(!Condition()) ;
在for循环中更常见,其中循环体完全嵌入循环头中。
让我们遍历链表的最后一个元素:
Node current = head;
for (; current.Next != null; current = current.Next) ;
return current;
它看起来有点讨厌,一般我更喜欢写一个更长但更易读的循环。 C ++人员往往会把东西塞进循环标题中。
我确信它在代码生成场景中也会派上用场。