2012-06-22 57 views
2

C#文件的結構是否會影響編譯的內容?C#文件的結構是否會影響編譯的內容?

例如,成員的順序(根據文件存在的位置)會影響編譯的類嗎?

+2

爲什麼不嘗試一下? – sloth

+0

...並告訴我們您發現了什麼? –

+1

...並使用不同的編譯器進行交叉比較。然後寫一篇關於它的好博客文章,並立即着名:) –

回答

5

根據Eric Lippert的博客文章,我前幾天讀到,編譯器不保證同一個源的兩個編譯結束了相同的IL。這不是關於方法排序,但我認爲這也適用 - 所以,我認爲假定編譯類中的任何方法排序都是不安全的。我也不希望源文件方法排序和IL方法排序之間有任何連接。

+2

http://blogs.msdn.com/b/ericlippert/archive/2012/05/31/past- performance-is-no-guarantee-of-future-results.aspx是指向博客的鏈接。 –

0

沒有保證會員的順序。

+1

你確定這是正確的(成員名稱不一樣)?當使用反射或ILSpy之類的東西時,你可以看到它們沒有改變。 –

+0

我和你在一起,@GeorgeDuckett。 – spender

2

雖然在大多數情況下,順序是不重要的,這是與匿名類型的情況:

new{a=1,b=2} 

創建一個不同的,不兼容的類型

new{b=2,a=1} 
+0

你是否知道序列化以外的其他情況(http://stackoverflow.com/questions/3282991/serialize-deserialize-objects-order-of-fields-matters),其中的順序很重要? – StuperUser

相關問題