C# · 12月 29, 2021

c# – 我应该实现IEquatable,还是IComparable?

我有一个班这个课程的意思是说我们可以说这样的事情是相互平等的,我们也可以提出一个计划,以便比较起来.

然而,发生这样的事情,很少有人觉得需要对这些事情进行排名,但是经常需要检查两个这样的事情是否相等.

所以,我可以为我的课程和IComparable实现IEquatable.虽然IComparable提供了一些额外的功能,但是任何人都不太会关心这个额外的功能.无论是在逻辑上还是功能方面,似乎都没有明显的优势.

我应该实现哪个接口,IEquatable,IComparable或两者兼而有之?为什么? (我特别想知道框架范围内的任何接口)

This question是相似的,但答案只说明了,这对我没有帮助.

如果你想知道,这个课程是为了代表一个核苷酸.核苷酸可以容易地等同,但也可以比较(例如,按字母顺序).

解决方法 我一定会实现IEquatable< T>但是跳过IComparable / IComparable< T>目前.

正如你所说,没有一种比较核苷酸的方法.有人可能需要按字母顺序进行比较,有人可能需要另外一种方法对它们进行排序.我宁愿提供不同的IComparer<Nucleotide>实现来实现IComparable / IComparable< T>本身.