这可能是一个琐碎的问题,但是我没有找到任何有关此信息:使T型实现IComparable<S>
(T和S是两种不同的类型)是“有害的”还是被认为是不好的做法?
例子:
class Foo : IComparable<int>
{
public int CompareTo(int other)
{
if (other < i) return -1;
if (other > i) return 1;
return 0;
}
private int i;
}
应该避免这种代码,如果可以,为什么?
最佳答案
我至少会认为它是“奇数”的-特别是在那时,比较不会是对称的,这通常是正常比较契约(Contract)的一部分。
如果在某种特定情况下,它比您要执行的任何其他实现都简单,那就可以了-但我不能说我曾经遇到过这种情况。这样的比较几乎总是用于对同类集合或类似集合进行排序。
您是否有特定的想法,或者只是一个“为了利益”的问题?
关于c# - 实现IComparable <NotSelf>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2539500/