我正在实施IComparable和IComprable< T>在我的一个课程有没有关于在给定一个空参数时每种情况下CompareTo方法应该如何表现的建议?应该返回一个正数还是抛出一个ArgumentNullException?或者这个行为会因执行类而有所不同吗?
解决方法
IComparable.CompareTo()
和
IComparable<T>.CompareTo()
的两个MSDN引用如下:
By definition,any object compares greater than (or follows)
Nothing
,and two null references compare equal to each other.
没有任何VB对应于C#中的null.
注意前一段说:
The meaning of the comparisons,“less than,” “equal to,” and “greater than,” depends on the particular implementation.
但是,不是null的实例引用始终大于null引用,无论你如何比较类的实例.