Si hace la clase sealed
, tampoco recibirá la advertencia (porque el problema es solo un problema si hereda esta clase y anula el miembro).
Edición después comentario OP:
Ah, cierto. Normalmente encuentro esto solo cuando trato con miembros virtuales heredados. La respuesta de Yads es probablemente la más útil para ti.
Tenga en cuenta que no es necesario que la propiedad sea virtual. Considere esto:
List<Grade> Grades {
get { return _grades; }
set { _grades = value; OnGradesChanged(); }
protected virtual OnGradesChanged()
{ }
Por lo general, usted no desea almacenar el Grades
de una manera diferente en la clase derivada. Solo necesita hacer algunas actualizaciones cuando cambie. De esta manera, proporciona más orientación a la clase derivada, y está seguro de que puede confiar en el campo de respaldo.
P.S. ¿Sabía que las personas pueden editar List<Grade>
sin que sus clases lo vean? Debe considerar usar ObservableCollection
que incluye un evento cuando la colección se cambia externamente. En ese caso, solo necesita exponer una propiedad readonly Grades
.
¿Duplicado? [Llamada de miembro virtual en un constructor] (http://stackoverflow.com/questions/119506/virtual-member-call-in-a-constructor) –
@Tomas, no necesariamente un duplicado ya que esa pregunta era más sobre por qué es mala para inicializar un miembro virtual de un constructor. Buena lectura para OP sin embargo. – Vadim