什么是比较者的好地方?

时间:2015-01-08 23:12:07

标签: c# coding-style nested-class code-organization iequalitycomparer

EqualityComparer<T> ......它应该去哪里?嵌套在课堂上进行比较?或者在它自己的文件中?或者在包含所有其他自定义Comparer的文件中?

是否普遍同意编码指南,以及他们在这种情况下的建议是什么?

1 个答案:

答案 0 :(得分:2)

虽然某些约定会随着时间的推移而发生变化,但MSDN上提供的.NET 1.1 C# coding conventions是一个非常好的起点。

关于nested classes

  

如果...... []类型必须由客户端代码实例化,请不要使用嵌套类型。如果类型具有公共构造函数,则可能不应嵌套。本指南背后的基本原理是,如果可以实例化嵌套类型,则表明该类型在库中有自己的位置。您可以创建,使用它,并在不使用外部类型的情况下销毁它。因此,它不应该嵌套。内部类型不应在外部类型之外广泛重用,而与外部类型无关。

关于C#源代码文件的组织,通常的做法是将每个类放在一个单独的.cs文件中,该文件与该类同名。这使您在浏览存储库时可以轻松找到该类,并且通常有助于一目了然地理解代码的组织。 This has been discussed on SO as well

此规则并非强制强制执行,我看到有很多人在特定情况下偏离它。但是,除非您确实需要将类保持在一起,否则我建议为每个类别单独添加.cs文件。

总结一下。如果您有一个主要课程Foo和一个比较器FooComparer,那么每个人都有一个单独的类文件,Foo.csFooComparer.cs