这可能是一个微不足道的问题,但我没有找到任何相关信息:制作 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/