这可能是一个微不足道的问题,但我没有找到任何关于此的信息:它是"有害的"还是被认为是制作类型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;
}
Run Code Online (Sandbox Code Playgroud)
是否应该避免这种代码,如果是,为什么?
我至少会认为它"奇怪" - 特别是在那一点上,比较不会是对称的,这通常是正常比较合同的一部分.
如果有一种特殊的情况,它比你想要做的任何其他实现更简单,那就没关系 - 但我不能说我遇到过这样的情况.像这样的比较几乎总是用于排序同类集合或类似的东西.
您是否有特定的情况,或者它只是一个"感兴趣"的问题?
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |