EqualityComparer<T>
......它应该去哪里?嵌套在课堂上进行比较?或者在它自己的文件中?或者在包含所有其他自定义Comparer
的文件中?
是否普遍同意编码指南,以及他们在这种情况下的建议是什么?
答案 0 :(得分:2)
虽然某些约定会随着时间的推移而发生变化,但MSDN上提供的.NET 1.1 C# coding conventions是一个非常好的起点。
如果...... []类型必须由客户端代码实例化,请不要使用嵌套类型。如果类型具有公共构造函数,则可能不应嵌套。本指南背后的基本原理是,如果可以实例化嵌套类型,则表明该类型在库中有自己的位置。您可以创建,使用它,并在不使用外部类型的情况下销毁它。因此,它不应该嵌套。内部类型不应在外部类型之外广泛重用,而与外部类型无关。
关于C#源代码文件的组织,通常的做法是将每个类放在一个单独的.cs
文件中,该文件与该类同名。这使您在浏览存储库时可以轻松找到该类,并且通常有助于一目了然地理解代码的组织。 This has been discussed on SO as well。
此规则并非强制强制执行,我看到有很多人在特定情况下偏离它。但是,除非您确实需要将类保持在一起,否则我建议为每个类别单独添加.cs
文件。
总结一下。如果您有一个主要课程Foo
和一个比较器FooComparer
,那么每个人都有一个单独的类文件,Foo.cs
和FooComparer.cs