Z dokumentacji MSDN na IComparable.CompareTo()
:
Z definicji, każdy obiekt porównuje większy niż (lub poniżej) null, oraz dwie referencje zerowe porównać sobie równe.
Wynika to również z dokumentów Double.CompareTo(object)
:
Zwraca dodatnia, jeśli tym przypadku jest większy niż wartość. -lub- Ta instancja jest liczbą, a wartość nie jest liczbą (NaN). -lub- wartość jest zerową referencją (Nic w Visual Basic).
Adam Houldsworth zwraca uwagę, jeśli something.CompareTo(somethingElse)
zwrócił wyjątek podczas somethingelse jest zerowy, a następnie sortowania i takie rzeczy wymagałaby dużo dodatkowej obsługi wyjątków.
Wymusza wszystkie wartości null i nans na górze lub na dole listy podczas sortowania. "Zmysł" w sortowaniu wartości null i nans jest dokładnie taki, jaki określasz: punkt widzenia. Sądzę, że bezpieczniej było z tym poradzić, ponieważ 'IComparer/IComparable' napędza wiele rzeczy w tle i przez większość czasu może być przesłonięty przez użytkownika, jeśli i tak chce on innego zachowania. –
Coś jest lepsze niż nic. –