Dalla documentazione MSDN IComparable.CompareTo()
:
Per definizione, qualsiasi oggetto confronta superiore (o segue) nullo, e due riferimenti nulli confronta uguali tra loro.
Ciò risulta dalla documentazione Double.CompareTo(object)
:
restituisce un intero positivo se questo esempio è maggiore del valore. - oppure - Questa istanza è un numero e il valore non è un numero (NaN). -o-- valore è riferimento null (Nothing in Visual Basic).
Come Adamo Houldsworth sottolinea, se something.CompareTo(somethingElse)
gettato un'eccezione quando somethingElse è nullo, allora l'ordinamento e cose del genere richiederebbe un sacco di gestione in più eccezioni.
Durante l'ordinamento forza tutti i null e nans alla cima o alla fine di un elenco. Il "senso" nell'ordinamento di null e nans è esattamente come affermi: un punto di vista. Direi che è più sicuro gestirlo perché "IComparer/IComparable" spinge un sacco di cose in background, e la maggior parte delle volte può essere sovrascritto dall'utente se vuole comunque un comportamento diverso. –
Qualcosa è meglio di niente. –