me encontré a este post y no necesariamente me gustó ninguna respuesta en particular, así que pensé que proporcionaría la mía ...
No hay forma en que C# haga cumplir que se llama al método base. Por lo tanto, la codificación como tal se considera un antipatrón debido a que un desarrollador de seguimiento puede no darse cuenta de que debe llamar al método base, de lo contrario la clase estará en un estado incompleto o incorrecto.
Sin embargo, he encontrado circunstancias en las que se requiere este tipo de funcionalidad y se pueden cumplir en consecuencia. Por lo general, la clase derivada necesita un recurso de la clase base. Para obtener el recurso, que normalmente podría estar expuesto a través de una propiedad, se expone a través de un método. La clase derivada no tiene más remedio que llamar al método para obtener el recurso, por lo que se asegura de que se ejecute el método de la clase base.
La siguiente pregunta lógica que uno podría hacerse es ¿por qué no ponerla en el constructor? La razón es que puede tratarse de un problema de orden de operaciones. En el momento en que se construye la clase, pueden faltar algunas entradas.
¿Esto se aleja de la pregunta? Si y no. Sí, obliga a la clase derivada a llamar a un método de clase base particular. No, no hace esto con la palabra clave override. ¿Podría ser útil para una persona que busca una respuesta a esta publicación, tal vez?
No estoy predicando esto como un evangelio, y si las personas ven una desventaja de este enfoque, me encantaría saberlo.
¿Quieres decir desde un constructor de cuándo sustituir un método? – munificent