Duda métod IndexOf de un Array

16/08/2005 - 22:02 por luis | Informe spam
La documentación dice "Los elementos se comparan con el valor especificado,
utilizando el método Object.Equals. Si el elemento es de tipo no intrínseco
(definido por el usuario), se utiliza la implementación Equals de dicho
tipo."

Tengo el siguiente código:

using System;

class Persona

{

string nombre;

int edad;

public Persona(string nombre, int edad)

{

this.nombre=nombre;

this.edad=edad;

}

public bool Equals(Persona x)

{

if(nombre==x.nombre && edad==x.edad)

return true;

else

return false;

}

}

class MainClass

{

public static void Main(string[] args)

{

Persona []b={new Persona("ana",10),new
Persona("pepe",20)};

Persona c=new Persona("pepe",20);

Console.WriteLine(Array.IndexOf(b,c));



}

}



Pero el método Equals no se ejecuta. ¿Qué estoy haciendo mal?

Preguntas similare

Leer las respuestas

#1 Jose Selesan
16/08/2005 - 22:16 | Informe spam
Hola. Lo que te está faltando es la palabra override en
la definición del método Equals:

public override bool Equals(Persona x)public bool Equals
(Persona x)
{...}

Saludos
José
Mostrar la cita
valor especificado,
Mostrar la cita
tipo no intrínseco
Mostrar la cita
Equals de dicho
Mostrar la cita
edad==x.edad)
Mostrar la cita
("ana",10),new
Mostrar la cita
(b,c));
Mostrar la cita
mal?
Mostrar la cita
#2 luis
17/08/2005 - 00:14 | Informe spam
Ya veo donde está el fallo. El override lo había probado pero me daba error.
Ahora como me lo has dicho lo he vuelto a probar y me he fijado mejor y el
tema es que el Equals debe quedar así:

public override bool Equals(Object x)

Gracias


"Jose Selesan" escribió en el mensaje
news:05ed01c5a29f$74a29900$
Hola. Lo que te está faltando es la palabra override en
la definición del método Equals:

public override bool Equals(Persona x)public bool Equals
(Persona x)
{...}

Saludos
José
Mostrar la cita
valor especificado,
Mostrar la cita
tipo no intrínseco
Mostrar la cita
Equals de dicho
Mostrar la cita
edad==x.edad)
Mostrar la cita
("ana",10),new
Mostrar la cita
(b,c));
Mostrar la cita
mal?
Mostrar la cita
Ads by Google
Search Busqueda sugerida