I tienen una clase base que tiene una propiedad virtual:¿Qué excepción arrojar cuando no se permite un ajustador de propiedades?
public virtual string Name { get; set; }
entonces tengo una clase derivada que anula sólo el getter de la propiedad
public override string Name
{
get { return "Fixed Name"; }
}
El problema es que esto sólo anula el getter. Si alguien llama al colocador, se llamará al clasificador de la clase base y la persona que llama no sabrá que es ineficaz.
así que pensé que haría algo como:
public override string Name
{
get { return "Fixed Name"; }
set { throw new Exception(); } //which exception type?
}
Así que dos (preguntas relacionadas):
- ¿Hay un mejor patrón para que yo use?
- Si debería usar el patrón anterior, ¿qué excepción usar?
Editar: Algunas razones por las que una excepción sería preferible a otra sería buena. Mi compañero de trabajo y yo hemos tenido el mismo argumento entre NotSupported
y InvalidOperation
.
¿Hay alguna razón por la que necesite el colocador en la clase base? –
@DarylTeo sí, la clase base debe admitir la configuración del nombre de forma manual, aunque podría estar en el constructor. – Ray