using System;
public class Empleado
{
string primerNombre;
public string PrimerNombre
{
get
{
return primerNombre;
}
set
{
primerNombre = value;
}
}
string apellido;
public string Apellido
{
get
{
return apellido;
}
set
{
apellido = value;
}
}
int edad;
public int Edad
{
get
{
return edad;
}
set
{
edad = value;
}
}
int idEmpleado;
public int IdEmpleado
{
get
{
return idEmpleado;
}
set
{
idEmpleado = value;
}
}
// Sobreescritura del método ToString
public override string ToString()
{
return String.Format("Nombre: {0}, Apellido: {1}, y Edad: {2}.", primerNombre, apellido, edad);
}
// Sobreescritura del me´todo Equals
public override bool Equals(object obj)
{
if (obj != null && obj is Empleado)
{
Empleado emp = (Empleado) obj;
if (emp.primerNombre == this.primerNombre &&
emp.apellido == this.apellido &&
emp.edad == this.edad &&
emp.idEmpleado == this.idEmpleado )
{
return true;
}
}
return false;
}
// Sobreescritura del método GetHashCode
public override int GetHashCode()
{
return ToString().GetHashCode();
}
}
public class EmpleadoPrueba
{
public static void Main()
{
Empleado emp1 = new Empleado();
emp1.PrimerNombre = "Juan";
emp1.Apellido = "Ortiz";
emp1.Edad = 40;
emp1.IdEmpleado = 123456789;
Empleado emp2 = new Empleado();
emp2.PrimerNombre = "Juan";
emp2.Apellido = "Ortiz";
emp2.Edad = 40;
emp2.IdEmpleado = 123456789;
// Comparación de dos instancias de Epleado diferentes.
Console.WriteLine ("Hash de emp1: {0}", emp1.GetHashCode());
Console.WriteLine ("Hash de emp2: {0}", emp2.GetHashCode());
}
}