如果我有实现IComparable的此类:
public class BankAccount : IComparable<BankAccount>
{
[...]
public int CompareTo(BankAccount that)
{
if (this.Balance > that.Balance) return -1;
if (this.Balance == that.Balance) return 0;
return 1;
}
}
我应该检查that
是否为空。另外,我应该检查that
是否实际上是BankAccount
类型的吗?如果由于某种原因,最好键入check,那为什么呢?我的意思是C#是静态类型,在我的情况下,BankAccount
不是基类。
答案 0 :(得分:1)
我应该检查一下是否为空
是的,如果为null,则可能会引发一些异常。
另外,我应该检查一下它是否实际上是BankAccount类型
为什么?因为您使用的是IComparable IComparable<T>
您也可以使用Comparison<T>
委托代替提供IComparable<T>