簡體   English   中英

為什么不; ; 導致VS中的構建錯誤?

[英]Why doesn't ; ; result in a build error in VS?

不管多少; 您將其放置在C#代碼行的末尾,編譯器將不會顯示錯誤,並且編譯成功。

支持幾乎所有其他語言,例如C,C ++和Java。 這是不允許的。

您認為該模式在C,C ++和Java中是非法的,這完全是錯誤的。

我推薦您:

C編程語言,第二版,A9.2節:

...這種構造稱為空語句; 它通常用於為迭代語句提供一個空的主體...

C ++編程語言,第二版,r.6.2節

缺少表達式的表達式語句稱為空語句。 為迭代語句提供空主體是很有用的...

Java語言規范,第1版,第14.5節

空語句不執行任何操作。

C#語言規范,第4版,第8.3節:

當在需要語句的上下文中沒有任何操作要執行時,使用空語句。

空語句:

http://msdn.microsoft.com/zh-CN/library/aa664739(v=vs.71).aspx

不管您有多少-仍然無能為力...

您可以在C / C ++中執行相同的操作,甚至在Java中也可以:

為什么C / C ++中的空表達式合法?

為什么不? ; 以多種形式的代碼流定界語句。 單身; 本身僅表示“這里什么也沒有發生”。 放一堆; 在一起仍然會導致好,什么也沒發生!

; 是一個空的聲明,並且完全合法。 您反對連續進行一系列操作嗎; 的? :-)

有趣的是與Eric的博客有關,這不是警告。

在埃里克·利珀特(Eric Lippert)的博客中,“經常有人問為什么為什么一大堆難聞的代碼不會產生編譯器警告。”

http://blogs.msdn.com/b/ericlippert/archive/2011/03/03/danger-will-robinson.aspx

關鍵是,是否應該充分利用編譯器團隊的寶貴時間來引入此類警告?

增加多個; 表示您添加空語句。 他們是合法的。

C,C ++,C#和Java都允許使用空語句(前面沒有分號)。

結果就是空白命令,僅此而已。 如果程序員想要的話,Microsoft可能決定讓他們的閃亮語言冒空白。 :)

編譯器最有可能在優化過程中完全刪除/忽略此代碼。

另外,考慮使用換行符或空格標記代碼塊(而不是分號)結尾的語言。 在這些語言中,留空行不是錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM