什么是放置比较器的好地方

本文关键字:好地方 比较器 什么 | 更新日期: 2023-09-27 18:36:55

EqualityComparer<T> ...它应该去哪里?嵌套在它正在比较的类中?还是在它自己的文件中?还是在包含所有其他自定义Comparer的文件中?

是否有普遍同意的编码准则,在这种情况下它们有什么建议?

什么是放置比较器的好地方

虽然某些约定确实会随着时间的推移而变化,但 MSDN 上提供的 .NET 1.1 C# 编码约定是一个很好的起点。

关于嵌套类:

如果 ... [该] 类型必须由客户端代码实例化,则不要使用嵌套类型。如果类型具有公共构造函数,则可能不应嵌套。此准则背后的基本原理是,如果可以实例化嵌套类型,则表明该类型本身在库中占有一席之地。您可以在不使用外部类型的情况下创建、使用和销毁它。因此,不应嵌套它。不应在没有与外部类型关系的情况下在外部类型之外广泛重用内部类型。

关于 C# 源代码文件的组织,通常的做法是将每个类放在与类同名的单独.cs文件中。这使得在浏览存储库时可以轻松找到类,并且通常有助于一目了然地理解代码的组织。SO上也对此进行了讨论。

这条规则没有得到强有力的执行,我看到很多人在特定情况下偏离了它。但是,除非您确实有将类保持在一起的特定需求,否则我建议为每个类使用单独的.cs文件。

所以总结一下。如果你有一个主类Foo和一个比较器,FooComparer,你将为每个类文件,Foo.csFooComparer.cs