为什么以下代码段返回1:
double i = double.NaN;
double? i2 = null;
i.CompareTo(i2);
Run Code Online (Sandbox Code Playgroud)
从我的观点来看,没有任何意义.例外情况更合适.
你认为这个决定背后的原因是什么?
来自 MSDN 文档IComparable.CompareTo():
根据定义,任何对象都比较大于(或小于)null,并且两个 null 引用比较彼此相等。
从文档中也可以看出这一点Double.CompareTo(object):
如果此实例大于值,则返回正整数。- 或 - 该实例是一个数字,而值不是数字 (NaN)。- 或 - 值是空引用(在 Visual Basic 中为 Nothing)。
正如 Adam Houldsworth 指出的那样,如果something.CompareTo(somethingElse)当 someElse 为 null 时抛出异常,那么排序和类似的事情将需要大量额外的异常处理。
| 归档时间: |
|
| 查看次数: |
506 次 |
| 最近记录: |