All articles

Arg_BogusIComparer

Published 2006-11-17 - Last modified 2006-11-17

Ezt a resource-öt az mscorlibben találhatjátok meg, és az olyan lámáknak rakták bele, mint én:

Arg_BogusIComparer=IComparer (or the IComparable methods it relies upon) did not return zero when Array.Sort called x. CompareTo(x). x: ‘{0}’ x’s type: ‘{1}’ The IComparer: ‘{2}’.

Egy intelligens(nek tervezett) kollekcióban írtam saját IComparert, ám elfeledkeztem arról az esetről, amikor mindkét összehasonlítandó elem null. Erre false választ adtam, ettől behülyült az Array.Sort, de szerencsére felkészültek az olyan majmokra, mint én, és nem egyszerűen túlcímezték a tömböt, hanem szóltak, hogy kolléga, bugos a Comparer.

Tanulság: tessék lekezelni minden lehetséges esetet a Comparerben, a rossz bemeneti típusokat és a nullokat is. Ha persze lehet, használjatok IComprer-t, akkor nem már csak a nullokkal kell külön foglalkozni.