检查CompareTo中参数的有效性



如果我有实现ICOMABLE的课程:

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是否为null。另外,我应该检查that是否实际上是BankAccount类型?如果出于某种原因,最好输入检查,那为什么呢?我的意思是C#是静态键入的,就我而言,BankAccount不是基类。

我应该检查是否是null

是的

另外,我是否应该检查是否实际上是类型的bankaccount

为什么?由于您使用的是强烈键入的ICOMABLE IComparable<T>

您也可以使用Comparison<T>委托而不是提供IComparable<T>

最新更新