2008-10-24 19 views
13

我知道VS2008具有刪除和排序功能,可以使用指令進行清理,就像Resharper一樣。除了你的代碼是「乾淨的」,並且消除了將來可能不存在的名稱空間的引用問題,維護一個「乾淨」的使用指令列表有什麼好處?在C#中維護使用指令的「乾淨」列表有什麼好處?

較少的代碼? 編譯時間更快?

+0

嗯,有人編輯我的標題。最初的一個是,「你癡迷於在c#中刪除多餘的使用語句」? – Carl 2008-10-24 21:29:45

+0

爲了準確,我只是將「語句」更改爲「指令」。使用語句是在finally塊中調用Dispose的語句。你在談論使用指令。 – 2008-10-24 21:55:28

回答

10

對我來說,它基本上都是關於較少的噪音(加上令Resharper開心!)。

我相信編譯時間的任何改進都是最小的。

+0

這也是我的想法。 – Carl 2008-10-24 21:22:57

2

對我來說,在開始時使用語句的清單可以很好地理解期望的類型。

2

幾年前,當我第一次安裝ReSharper時(在一個18項目解決方案中),我看到了編譯時的不錯的收益。從那時起它只是保持清潔。

18

如果您始終只有您需要的使用指令,並且始終讓它們適當地排序,那麼當您比較兩個版本的代碼時,您將看不到無關的更改。另外,如果你有一整套使用指令,那麼任何看着代碼開始的人都可以通過查看使用指令來獲得概念

0

我不能說在編譯時間和性能方面的好處,但是如果你最小化了使用聲明,命名空間衝突的可能性就會降低。如果您使用多個第三方庫,這一點尤其重要。

7

沒有運行時影響。這純粹是編譯時間。它可能影響到以下幾點:

  1. 少命名空間衝突的機會
  2. 少的代碼文件
  3. 非常明確瞭解哪些命名空間和可能類型的文件
  4. 在預計使用菜單中的「噪音」刪除未使用的和排序意味着在開發者之間使用語句更一致。愚蠢的checkins只是爲了解決它的可能性較小。
7
  1. 噪音較小。爲什麼?「)
  2. 清除引用:如果您擁有最少的使用語句集,則可以清除引用。我經常看到開發人員不斷地將引用引入他們的項目中,但是當他們不再需要時,他們從不刪除它們。如果您沒有任何實際需要引用的內容(並且使用語句是計數的),清理引用變得微不足道。 (你爲什麼要這麼做,在已經分解成組成部分,將通過消除未使用DEPS簡化您的生成依賴大型系統?)
0

有一個編譯時間差:當你刪除一個參考,但在你的代碼中仍然有一個using指令,那麼你會得到一個編譯器錯誤。因此,使用一個乾淨的使用指令列表使刪除未使用的引用變得容易一些。

通常編譯器刪除未使用的引用,但我不知道在代碼中使用using時是否有效。

相關問題