2011-12-30 64 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