包含多个类的C#文件的命名约定是什么?


20

在C#项目中,我们经常将紧密相关的小型类分组到同一.cs文件中。这种做法减少了处理大量几乎没有实际代码的文件带来的麻烦。但是,是否存在命名包含多个类的文件的惯例?


13
坦白说,即使是很小的班级,我也喜欢一个班级一个文件
Felice Pollano 2011年

您可以根据这些紧密相关的类所属的来选择命名。
V4仇杀

也许这些课程太小了?就我个人而言,我仅将多个枚举分组到一个文件中(有时与该类一起,有时将所有枚举放在一起,具体取决于上下文)。
2011年

@Felice:看看MSpec :)
Bryan Boettcher

Answers:


18

我的建议:避免文件包含多个类和名称文件==类,即使您的意思是文件太多。尝试将它们组织在文件夹中。在非常特殊的情况下,您可能会有嵌套的类。在这种情况下,将主类和嵌套类分成具有一个子类的不同文件是有意义的。在这种情况下,我使用以下命名约定。

MyEnumerable.cs
MyEnumerable.MyEnumerator.cs

也许您也可以使用多部分文件名。


4
还有一个主意。您可以在Visual Studio Project中对多个.cs文件进行分组,以便它们都显示在树中的同一节点下(例如.Designer.cs文件)。这将通知您类紧密地属于在一起。


4

考虑到通过询问有关如何命名此类文件的问题,您已经确定了对您来说有问题的代码气味,并且这个问题不会轻易消失。

不管出于何种原因,当文件中包含多个类时,您都会发现很难选择明智的名称,因为即使文件以某种方式相关,也总是会产生一些吸引人的东西。不太适合您分配给一组类的组名。

因此,简短的答案是,没有公认的或建立的命名此类文件的标准。我的建议是与您的团队坐下来,检查您的代码的组织,并应用一些重构工作来整理一下内容。

但是,为了使事情更容易开始,我想问一下其他类是嵌套的还是独立的。如果是独立的,则可以将这些类更容易地拆分成自己的文件,并为其中包含的单个类命名每个文件。如果是嵌套的,则可能需要进一步决定如何组织此类,但是嵌套的类可能不需要立即删除,因此将为最外层的类命名文件。就嵌套而言,有很多反对的观点,并且在某些情况下有一些合理的嵌套建议,我的建议是询问合理的命名空间和创建更有条理的源代码结构是否是解决该问题的更好方法。问题。

但是实际上,您会发现,在项目生命周期的最后,您希望所有文件都只包含一个类和一个不错的目录/命名空间结构。

干杯,


3

我曾经在一个文件中拥有多个类,但自从我开始真正以程序员的身份工作(而不是一个人工作)以来,我发现这可能是一个维护噩梦,在一个文件中包含多个类。虽然,诚然,Visual Studio通过使用F12可以提供很多帮助(定义)。

我开始使用的是如下命名约定:namespace.classname.cs这样,我可以确切地知道每个文件中的内容,并且还可以提供文件的某种整体上下文。如果该类将位于默认名称空间中,那么我将继续使用classname.cs(类似于Java)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.