2011-03-18 18 views

回答

6

注意,只有人能準確回答這個問題的是你,和你的團隊。如果你的團隊很高興在單個文件中找到幾種相關的類型,那麼......由於......無論如何......那麼我或任何其他人所說的應該是......無關緊要。

在任何情況下,我會變成這個問題顛倒:

  • 是否有任何理由將兩個不同的類型(按名稱,功能,或任何相關的,但獨立的仍然)在同一個文件

和我還沒有想出了一個很好的理由。

有擴展/加載項到Visual Studio,您可以在相應的名稱,並快速定位到該文件,我能想到的三個,但毫無疑問的人:

第一個允許您快速定位到由名稱的文件。如果你知道類型,但是讓人們將多種類型放入同一類型,那麼這根本就沒有幫助。

第二個和第三個讓您按名稱導航到某個類型,但不應該依賴具有這些類型的人或知道如何使用它們。

爲此,我會主張遵循以下規則:

  1. 項目的名稱應與該項目的根命名空間。我不同於這一點,在某些情況下,我將我的項目命名爲「... Core」,然後從命名空間中刪除「Core」,否則將項目名稱保留爲與命名空間
  2. 。項目來建立命名空間層次結構
  3. 類型的名稱應該100%對應於文件的名稱+任何擴展名適合您的語言。因此,根據語言,「YourType」應該是「YourType.cs」,「YourType.vb」或「YourType.whatever」
+0

+1一些好點 – BrokenGlass 2011-03-18 20:21:31

+1

總是有右鍵點擊「Go To Definition」 。 – 2011-03-18 21:15:14

+0

+1我們將永遠擁有巴黎。 – 2011-03-18 21:18:32

5

這取決於你問誰。

我個人覺得更容易閱讀,如果他們都在,一如既往地爆發了。然而,編譯器並不在乎......所以無論你和你的團隊認同什麼都會更容易理解。

1

在我看來,避免這種情況是一種很好的做法。有一天,一個開發商將在項目ClassBar可以環顧四周,因爲它是嵌套在ClassFoo.cs

工具,比如ReSharper的有一個整潔的功能,您可以只選擇一類將不能夠很容易地找到它,點擊右鍵,放置在新文件中以使其更容易。

如果你讀過任何流行的編碼標準(蘭斯亨特■設計,框架設計指南等)大多主張每個文件1班。

0
  1. 它討厭向下滾動和搜索多少個類each.cs文件包含/隱藏。

  2. 同時使用版本控制

  3. 可用性與我們的團隊可維護性問題。

檢查here更多有趣的討論。

0

我認爲這是不太是否可以或者是否應。對於這樣的事情,我覺得最好在代碼庫的其餘部分查看約定。有時順從會更好,因爲它讓其他開發人員的工作變得更加輕鬆,因爲每個人都知道事情的發展。

如果是全新的項目,你自己在這裏設置的標準,做對你有意義。對我來說,如果結構在相關類之外沒有用處,我可以把它們放在同一個文件中。否則,我把它們分開。