Tengo cuatro clases. Solicitud, DerivedRequest, Handler, DerivedHandler. La clase Handler tiene una propiedad con la siguiente declaración:Anulación de una propiedad abstracta con un tipo de devolución derivada en C#
public abstract Request request { get; set; }
la DerivedHandler tiene que sustituir esta propiedad para que vuelva DerivedRequest lugar:
public override DerivedRequest request { get; set; }
¿Alguien tiene alguna idea acerca de cómo hacer este trabajo ?
Esto no es estrictamente una buena programación orientada a objetos, ya que viola la interfaz. Algunos tipos de operaciones setter (con 'valor's no derivados) se lanzarán inesperadamente. – recursive
En este caso, supongo, no necesitaría un colocador. Podría hacer una propiedad privada y configurarla en el constructor. Eso se ocuparía de las excepciones de operación del colocador, ¿sí? – Trevor
En ese caso, no necesitaría anular la propiedad. Simplemente haga que el constructor solo acepte DerivedRequest. – recursive