hola,
Tengo una clase asi
class client
{
private string _ip;
private string _nom;
public client (string ip, string nom) {_ip = ip; _nom = nom;}
public string nom {get {return _nom;}
public string ip {get {return _ip;}
}
si hago esto
client a = new client("192.0.0.0", "a");
client b = new client("192.0.0.0", "a");
(o sea, a y b son iguales)
a.equals(b) dá falso. Y a==b tambien dá falso.
luego he añadido en la clase client
public override bool Equals(object obj)
{
client c = (client)obj;
return c.ip == _ip && c.nom == _nom;
}
y con esto, a.equals(b) me dá true, que es lo que queria.
pregunto:
a) Esta es la única forma de comparar dos objetos?
b) Porque haciendo el override de Equals, el compilador me lanza la
advertencia de que ojo! que estoy sobreescribiendo EQUALS pero que no estoy
sobreescribiendo GETHASHCODE?
Muchas grácias
Miquel
Leer las respuestas