Dictionary override Equals
Bonjour
Je viens d'etre confronté a un petit souci que je n'avais pas encore appréhendé avec un Dictionary
J'utilise la classe suivante comme clef d'un dictionaire
Code:
1 2 3 4 5 6 7 8 9 10
| public class C_PointCosF
{
public PointF A;
public PointF Acos;
public C_PointCosF(PointF a)
{
this.A = a;
this.Acos = C_BCGEO.PointFCos(A);
}
} |
J'ai malheureusement asser vite remarqué que ca ne marchait pas et que quand une clef n'était pas de type natif, il fallait overrider la methode Equals
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class C_PointCosF
{
public PointF A;
public PointF Acos;
public C_PointCosF(PointF a)
{
this.A = a;
this.Acos = C_BCGEO.PointFCos(A);
}
public override bool Equals(object obj)
{
C_PointCosF T=(C_PointCosF) obj;
if (this.A.X == T.A.X && this.A.Y == T.A.Y)
{
return true;
}
return false;
}
} |
Mais ca ne marche pas mieux et maintenant il me dit que je dois aussi overrider la methode GetHashCode ce qui devient déja plus compliqué
Du coup je me dis que ce que je voulais faire simplement avec un dictionnaire devient fort lourd. Ais-je loupé qq chose ?