C# 对比检查参数的有效性?
如果我有一个实现IComparable的类: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;
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)代码>(尽管该此无效)