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?
 

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

Preguntas similares