2009-06-03 24 views

回答

5

This MSDN article on enum best practices不建議在哪裏存儲枚舉定義。

你會得到不同的建議。就我個人而言,我傾向於將枚舉存儲在與其相關的類相同的文件中。我希望儘可能使我的文件結構與我的命名空間結構保持一致,因此如果我的枚舉自然落入特定的命名空間,我會將該定義存儲在相應的文件中。

我的建議是,找一個適合你的方案,並堅持下去。

6

個人而言,我更喜歡一種類型,一種文件哲學。我甚至在嵌套類型的單獨文件中使用了部分類來允許分離。

我主要這樣做是因爲我看到了太多相反的東西。包含數十個類的單個文件。經歷改變了我。

+0

我同意你的看法,除了枚舉之外幾乎所有的東西。我無法讓自己爲五行代碼創建一個單獨的文件。不過,我尊重你的推理。 – 2009-06-03 03:17:14

6

對我來說,一種類型=一個文件,除非它是一個委託。由於FuncAction,我現在不需要經常聲明自己的代表,但是當我這樣做時,我發現有一個Delegates.cs文件是有用的。

至於結構 - 我只能記得寫關於其中兩個,除了爲了測試結構可以做的mutable這些壞事情。但我也會堅持每個文件一個。你爲什麼不呢?僅僅因爲它們是值類型並不意味着它們自然比類更短或更簡單。 (你能想象如果decimalDateTime都在同一個源文件?Eek!)

編輯:我剛剛想過另一種情況,其中有多個結構可能是適當的:互操作。在這種情況下,我可能會有Interop.cs或Win32.cs ...或者可能有一個命名空間,並返回到每種類型的一個文件。

2

我把我所有的枚舉放在他們自己的文件中。但是,我也完全xml doccomment所有我的類型,包括枚舉...所以我的枚舉文件中可能有更多的代碼行比大多數人。我沒有寫很多年的結構,但我不認爲它們比任何一個類都少(再次,我完全xml doccomment包括我的所有類型,結構),所以他們在過去總是有自己的文件。

當涉及到代表,因爲它們通常是一個襯墊(減去doccomment),所以我傾向於將它們保留在相同的文件中,而不管它們支持哪種更突出的類型。這些天我不經常寫代表,但有時我發現他們仍然有用。不過,我會盡量讓任何代表在文件頂部聲明,而不是嵌套或低於主類型......讓他們更容易找到它們。

我認爲還有一個非常簡單但實際的理由,讓每個類型都保存在自己的文件中。他們很容易找到這種方式。如果您將枚舉和結構埋入其他類型中,或將它們保存在另一個文件中,有時(並不假設您,以及讀取您的代碼的人員始終訪問Visual Studio及其所有豐富的工具),它可以是很難找到你想要的類型。