¿Cual seria la mejor manera de comparar si dos objetos son de la misma clase? C#

publicado por: Anonymous

Me explico, estoy haciendo mis pinitos en C# y tengo una duda.
Tengo una Interfaz la cual tiene 4 metodos, y dos clases nuevas que heredan de esta interfaz. Lo que intento es que al llamar a uno de esos metodos “CompareTo()” dependiendo de si es un objeto u otro realizar tareas diferentes, el problema es que la clase padre es una interfaz y no puedo acceder al atributo de esta ya que no existe.

Intento seguir este ejemplo, herendando “IComparable”;

class Persona : IComparable<Persona>
{
    public double Sueldo { get; set; }

    public int CompareTo(Persona p)
    {
        return this.Sueldo.CompareTo(p.Sueldo);
    }
}


class Ingeniero : Persona { .... }

class Programador : Persona { .... }

El problema es que mi clase padre es una interfaz, por lo tanto no puedo acceder al atributo, como ya he mencionado antes.
¿Cual seria la mejor manera de realizar esto? Es un ejercicio tonto, no es que intente realizarlo así por gusto :D, veo ejemplos en Java haciendo casting pero según me informo leyendo no es algo muy aconsejable.
Me gustaría conocer maneras “profesionales” sin chapuzas de por medio.

Muchas gracias

solución

Usando reflect se soluciona ese problema algo así

 if(p.GetType() == typeof(Ingeniero)){
     //Cast y Codigo para ingeniero
 }

En donde p es una instancia de tu interfaz

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *