IMPLEMANTACION DE UNA INTERFACE:Para definir una clase o estructura que implemente una o más interfaces basta incluir los nombres de las mismas, separándolas con comas si son varias o si la clase definida hereda de otra clase, y asegurar que la clase cuente con definiciones para todos los miembros de las interfaces de las que hereda lo que se puede conseguir definiéndolos en ella o heredándolos de su clase padre. Las definiciones que se den de miembros de interfaces han de ser siempre públicas y no pueden incluir override, pues como sus miembros son implícitamente abstract se sobreentiende. Sin embargo, sí pueden dársele los modificadores como virtual ó abstract y usar override en redefiniciones que se les den en clases hijas de la clase que implemente la interfaz. Cuando una clase deriva de más de una interfaz que incluye un mismo miembro, la implementación que se le dé servirá para todas las interfaces que cuenten con ese miembro. Sin embargo, también es posible dar una implementación diferente para cada una usando una implementación explícita, lo que consiste en implementar el miembro sin el modificador public y anteponiendo a su nombre el nombre de la interfaz a la que pertenece seguido de un punto (carácter .) Cuando un miembro se implementa explícitamente no puede dársele modificadores como en las implementaciones implícitas, ni siquiera virtual o abstract. Una forma de simular los modificadores que se necesiten consiste en darles un cuerpo que lo que haga sea llamar a otra función El siguiente ejemplo muestra cómo definir una clase CL que implemente la interfaz IC: class CL:IC {

  public int Propiedad A?
  {
    get {return  5;}
    set {Console.Write Line(“Asignado {0} a Propiedad A”, value);}
  }

  void IA.Común(int x)
  {
    Console.Write Line(“Ejecutado Común() de IA”);
  }

  public int this[int índice]
  {
    get { return 1;}
    set { Console.Write Line(“Asignado {0} a indizador”, value); }
  }

  void IB.Común(int x)
  {
    Console.Write Line(“Ejecutado Común() de IB”);
  }

  public event D Evento C?;

}

Elaborado por un alumno del ITCA


Google