Tengo un tipo especial de diccionario. No estoy seguro de cómo hacer esto exactamente, pero estoy buscando para hacer que el método get virtual, pero no el método set:Propiedades del indexador C# - ¿Hay alguna forma de virtualizar el método get y no el set?
public TValue this[TKey key]
{
get { ... }
set { ... }
}
¿es posible y si es así cuál es la combinación correcta?
¿Qué quieres conseguir con haciendo solo getter 'virtual'? Puede haber una mejor manera de hacer eso. –
Solo estoy tratando de hacer posible extender mi "ReadOnlyDictionary". Debido a que es un diccionario de solo lectura, no soporto el método set (arroja una excepción), pero una clase extendida podría querer realizar trabajo adicional desde el método get, por lo tanto, podrían sobrescribirlo y modificarlo. –
De lo que no debería tratar de hacer que el método "get" sea virtual, sino que tenga algún método virtual "OnGetCalled" y permita que la clase derivada lo anule. La clase derivada no podrá anular "obtener" (es decir, mediante la sugerencia de Mark) sin llamar a la versión Base, por lo que el método separado hará que el contrato sea explícito. –