C# 对比检查参数的有效性?

C# 对比检查参数的有效性?,c#,C#,如果我有一个实现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;

如果我有一个实现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;
    }
}
公共类银行账户:i可比较
{
[...]
公共int比较(该银行账户)
{
如果(this.Balance>that.Balance)返回-1;
如果(this.Balance==that.Balance)返回0;
返回1;
}
}
我是否应该检查
是否为空。另外,我是否应该检查
类型是否为
银行账户
?如果出于某种原因,最好进行类型检查,那么为什么?我的意思是C#是静态类型的,在我的例子中,
BankAccount
不是基类

我应该检查它是否为空吗

是的,您应该这样做,如果为null,可能会引发一些异常

另外,我是否应该检查它是否属于BankAccount类型

为什么??因为您使用的是IComparable的强类型版本
IComparable


您也可以使用
比较
委托,而不是提供一个
可比较

检查
是否为空,最好是在为空时抛出ArgumentNullException。您也可以使用
返回this.Balance.CompareTo(that.Balance)(尽管该
无效)