Từ các tài liệu MSDN trên IComparable.CompareTo()
:
Theo định nghĩa, bất kỳ đối tượng so sánh lớn hơn (hoặc sau) null, và hai tài liệu tham khảo vô so sánh tương đương với nhau.
Đây cũng là rõ ràng từ các tài liệu Double.CompareTo(object)
:
Trả về một số nguyên dương nếu dụ này lớn hơn giá trị. - hay - Ví dụ này là một số và giá trị không phải là số (NaN). -hoặc- giá trị là một tham chiếu null (Không có gì trong Visual Basic).
Như Adam Houldsworth chỉ ra, nếu something.CompareTo(somethingElse)
ném một ngoại lệ khi somethingElse là null, sau đó phân loại và những thứ như vậy sẽ đòi hỏi rất nhiều xử lý ngoại lệ thêm.
Nó buộc tất cả các giá trị rỗng và nans vào đầu hoặc cuối danh sách khi sắp xếp. "Ý nghĩa" trong việc sắp xếp các giá trị rỗng và các nans là chính xác như bạn nói: một quan điểm. Tôi sẽ đoán rằng nó là an toàn hơn để xử lý này bởi vì 'IComparer/IComparable' ổ đĩa rất nhiều thứ trong nền, và có thể hầu hết thời gian được ghi đè bởi người sử dụng nếu họ muốn hành vi khác nhau anyway. –
Có điều gì đó tốt hơn là không có gì. –