Tengo una clase abstracta que define un get
, pero no set
, porque en lo que respecta a esa clase abstracta, solo necesita un get
.Anular Obtener, pero no establecer
public abstract BaseClass
{
public abstract double MyPop
{get;}
}
Sin embargo, en algunos de la clase derivan, necesito una propiedad set
, por lo que estoy buscando en esta implementación
public class DClass: BaseClass
{
public override double MyPop
{get;set;}
}
El problema es que tengo un error de compilación, diciendo que
* .set: no se puede anular porque *. no tiene un acceso de conjunto invalidable.
Aunque creo que la sintaxis anterior es perfectamente legítima.
¿Alguna idea de esto? ¿Solución temporal, o por qué es así?
Editar: El único enfoque que se me ocurre es poner tanto get
y set
como en la clase abstracta, y dejar que la subclase lanza una NotImplementedException
si set
se llama y no es necesario. Eso es algo que no me gusta, junto con un special setter method.
Vamos a romper esto un poco. Necesita crear un conjunto de clases que exponga un método para leer un valor 'doble' que se implementará específicamente en cada clase. A veces, este valor tendrá que establecerse, por lo que algunas de estas clases deberían exponer una forma de establecer esto. ¿Es esto correcto? ¿Cuántos niveles de herencia necesita usar? – Codesleuth
@Codesleuth: sí. En cuanto a cuántos niveles de herencia, no estoy seguro de cómo esto es relevante para la pregunta? – Graviton
@David, irónicamente esto parece una pregunta para la que no quiero aceptar una respuesta. – Graviton