Comparaison d'objets


Comparaison par la mthode Equals La mthode Equals est une mthode virtuelle polymorphe de la classe Object La mthode Equals permettra de tester lgalit quivalence entre deux objets Pour les objets de type rfrence lgalit signifie par dfaut lgalit des rfrences xEqualsObjecty retournera true si x et y dsignent en effet le mme objet
Comparaison par la mthode Equals Exemple A10 reprsente le numro CIN de Kamal Personne p1 new PersonnequotA10quot quotKamalquot Personne p2 new PersonnequotA10quot quotKamalquot Quel est le rsultat de linstruction suivante ConsoleWriteLinep1EqualsObjectp2
Comparaison par la mthode Equals Pour dfinir lgalit entre objets de la classe Personne sur la base de lgalit du numro CIN il faut redfinir la mthode Equals
Comparaison par la mthode Equals class Personne public override bool Equalsobject obj Personne p obj as Personne if Objectp null return false return thisCIN pCIN il est aussi recommand de redfinir la mthode GetHashCode public override int GetHashCode return thisCINGetHashCode
Comparaison par la mthode Equals Aprs redfinition de la mthode Equals A10 reprsente le numro CIN de Kamal Personne p1 new PersonnequotA10quot quotKamalquot Personne p2 new PersonnequotA10quot quotKamalquot linstruction suivante affichera True ConsoleWriteLinep1EqualsObjectp2
Comparaison par loprateur Par dfaut loprateur compare lgalit des rfrences identit entre deux objets Loprateur retourne true sil sagit de deux rfrences dsignant le mme et un seul objet Il est aussi possible de redfinir loprateur pour baser lidentit des objets sur dautres critres que lgalit des rfrences
Redfinir loprateur Pour redfinir loprateur il faut Redfinir la mthode Equals de la classe Redfinir la mthode GetHashCode Redfinir les deux oprateurs et Remarques La redfinition de loprateur nest pas recommande pour les objets non immuables
Redfinition de loprateur On ajoutera la redfinition des oprateurs et la classe personne public static bool operator Personne p1 Personne p2 Si p1 et p2 sont null ou dsignent le mme objet on retourne true if ObjectReferenceEqualsp1 p2 return true On convertit p1 et p2 en Object pour ne pas utiliser loprateur de la classe Personne et tomber dans une boucle infinie if Objectp1 null Objectp2 null return false return p1Equalsp2 public static bool operator Personne p1 Personne p2 return p1 p2
تحميل

PPTX

1982 مشاهدة.

Omar Ajouaou

Omar Ajouaou

أرسلت .



كلمات مفتاحية :
comparaison objets
comparaison objets wetud docs ...