De obicei cand dorim sa putem compara doua obiecte de acelasi tip folosim IComparar . Aceasta ne pune la dispozitie metoda
Pentru a rezolva acest neajuns, avem la dispozitie propietatea Default pe IComparable . Aceasta va crea automat comparatorul default pentru tipul de data dat. De exemplu daca lucram cu un obiect de tip nullable, putem sa evitam sa facem verificarea descrisa mai sus folosind aceasta propietate:
. Tipul de data T pe care il folosim trebuie sa implementeze interfata IComparable .
Aceasta propietate ne poate scapa de grijile de a verifica fiecare element daca este null inainte de a face compararea.
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.
Comments
Post a Comment