A vegades és necessari comparar objectes i s'ha de proporcionar a altres classes alguna forma de fer aquesta comparació. Per aquest motiu s'ha d'implementar l'interficie IEquatable.
En el Generador això és necessari per que treballa amb llistes d'objectes. Les llistes tenen un mètode força interessant que es diu "Contains", que indica si una llista té dins seu un objecte com el que es passa per paràmetre, però això necessita que la classe que defineix els objectes de la llista tingui implementat el IEquatable. Veiem el codi, a la classe clsTaula hi ha el mètode que afegeix camps a la taula:
public void AddCamp(clsCamp Camp)
{
if (Camps == null) Camps = new List<clsCamp>();
if (!Camps.Contains<clsCamp>(Camp)) Camps.Add(Camp);
}
Aleshores cal que la classe clsCamp implementi el IEquatable:
public class clsCamp : IEquatable<clsCamp>
{
[.....]
public bool Equals(clsCamp other)
{
if (this.NomCamp == other.NomCamp
&& this.NomTaula == other.NomTaula)
{
return true;
}
else
{
return false;
}
}
[......]
}
Un cop es veu l'exemple queda clar i no és gens complicat. |