2011-07-01 54 views
3

我以爲我在某處閱讀,指出您的使用語句並擺脫未使用的語句有某種性能好處...但我似乎無法找到任何證據或資源來支持.. 。有沒有道理呢?c#使用命名空間語句排序

+0

聽起來不對我。無論如何,以什麼方式訂購? – Brad

+0

它對性能的影響唯一的影響是Visual Studio的intellisense,但這通常不是VS 2010和現代PC的問題。類型在編譯時都是綁定的,所以使用不影響運行時性能(請參閱@keyboardP關於IL代碼的答案)。 –

+0

以及我不記得我在哪裏聽過或讀過它......或者我在混淆別的東西......看起來邏輯是,如果你以某種方式命令它們,它們會被加載到內存中,更有效率,甚至更快......像碎片整理你的命名空間或什麼......我不知道:)顯然,我在谷歌上找不到任何東西的原因是因爲它顯然是純粹的小說:) –

回答

4

msdn

使用空間指示在 相同的編譯單元或命名 身體不互相影響,可以 寫以任何順序。

非常多useful link您想訪問。

7

不,用於設置名稱空間的using語句沒有性能成本。無論報表的順序如何,所生成的IL代碼都是相同的。唯一的優點是清晰度和可讀性。此外,刪除未使用的將加快編譯時間,但運行時間性能不會有任何不同。

1

不會有。至少當然不是在運行時。有可能在構建時需要一些額外的時間來處理它們,但這不會是顯而易見的。 using聲明不會被轉移到IL代碼中,所有代碼都有其全名,所以它只是一個構建時間的事情。

現在,我個人熱鍵「排序和刪除使用」,不斷打它,只是因爲它保持代碼更清潔。但它僅僅是一個強迫的事情:)

+0

我今天早些時候在想如果你只需要爲不明確的類型指定使用語句就好了。所以我不必指定'using System;'來訪問'String'等等:-) – CodeNaked

2

其他評論者未提及的其他問題:您的使用聲明會影響Intellisense中顯示的內容(特別是擴展方法)。刪除不使用的語句將使您的Intellisense表現更好,只顯示相關的擴展方法。