2011-12-30 63 views
13

如果我在C#中有部分類,文件名應該是什麼?部分類文件名的命名約定?

這個類被稱爲partial class Logic並且可能存在兩個或三個單獨的文件。

+6

http://stackoverflow.com/questions/1478610/naming-conventions-for-partial-class-files – 2011-12-30 12:48:29

+0

貌似這一切都是爲了什麼:/ Unity3D無法處理部分類。它認爲他們是兩個不同的班級。 – 2011-12-30 13:19:32

+0

請注意,從Unity版本4.1.5開始,部分類似乎工作正常。 – yoyo 2013-08-16 21:34:29

回答

22

對於一個名爲Logic的課程,我可能會去找Logic.something.cs(其中每個文件的「something」是不同的)。這將與Visual Studio生成的部分類具有相同的風格(例如用於表單的.designer.cs文件)

+2

確實,這將區分_why_這是一個部分類,而「爲什麼」是命名約定的重要部分。部分類的經典示例是一部分生成,另一部分是手動。所以'Logic.generated.cs'和'Logic.cs'會很直觀。 – David 2011-12-30 12:49:46

+0

我喜歡這個想法,它可以讓設計師輕鬆識別! – Jonathan 2011-12-30 13:02:39

0

我相信您可以根據需要選擇文件的名稱,只要部分類是放置在相同的命名空間!不管你想要什麼

0

但:

  • 不要使用部分類。如果你的班級那麼大,最好把它分成不同的班級。
  • 如果你堅持局部類,其拆分邏輯,所以你可以有Logic_Boolean.cs等
+0

作爲你的第一個參數的評論:我還沒有很好的類,所以爲了保持它的組織,我想分割成多個文件:) – 2011-12-30 12:51:19

+0

@SimonVerbeke夠公平的。但要記住一些事情。 – Ray 2011-12-30 12:54:26

+0

另一個原因是我正在使用Unity3D,它的腳本要求您要執行的任何邏輯都被放置在某些預定義的方法中。我想分開這些:在一個文件中的Update(),在另一個文件中的OnGUI()'...這也是一個很小的項目,有很多代碼不會返回到其他地方。 – 2011-12-30 13:01:13

2

我只會用分部類,如果我生成代碼(CodeSmith中,MyGeneration,模板文件(TT ))。微軟已經在生成代理和數據集等方面做了很好的工作。由於代碼將來會再次生成,它允許你分離出你想包含但不想被覆蓋的邏輯。

基於標準在微軟.NET庫標準http://10rem.net/articles/net-naming-conventions-and-programming-standards---best-practices

帕斯卡爾情況下,沒有下劃線或導致 「C」 或 「CLS」。

僅當I後面的字母沒有大寫時,類纔可以以「I」開頭,否則它看起來像一個Interface。

類不應該與它們所在的命名空間具有相同的名稱。任何三個或三個以上字母的首字母縮略詞應該是pascal case,而不是全部大寫。儘量避免縮寫,並儘量使用名詞。原因:這個約定與.NET Framework一致,易於閱讀。

實例包括

  • 的widget
  • InstanceManager
  • 的XmlDocument
  • 的MainForm
  • DocumentForm
  • HeaderControl
  • CustomerListDataSet

這裏是關於命名約定的MS鏈接 http://msdn.microsoft.com/en-us/library/xzf533w0(v=vs.71).aspx