int Compare(T x, T y);
Valorea returnata de aceasta metoda poate sa fie:- >0 - daca x este mai mare ca y;
- =0 - daca x este egal cu y;
- <0 - daca x este mai mic ca y;
- >0 - daca y este null;
- =0 - daca x so y sunt null;
- <0 - daca x este mai mic ca y;
var valoare = x == null ? ( y == null ? 0 : -1 ) : x.CompareTo(y);
Este necesar sa verificam daca una din valor este null. Valoarea lui y nu trebe sa o verificam obligatoriu, dar cea a lui x trebuie sa o verificam mereu.Pentru a rezolva acest neajuns, avem la dispozitie propietatea Default pe IComparable
int? x,y;
// ...
var valoare = Comparar<int?>.Default.Compare(x,y);
Acesta va crea instanta in regim de Singleton, o instanta a clasei ComparerAceasta propietate ne poate scapa de grijile de a verifica fiecare element daca este null inainte de a face compararea.
0 comments:
Post a Comment