Considere el siguiente código:¿Qué efecto tiene la palabra clave "nueva" en C# y por qué es solo una advertencia cuando no está empleado?
public abstract class Test1
{
public object Data { get; set; }
}
public abstract class Test2<T> : Test1
{
public T Data { get; set; }
}
Esto generará la siguiente advertencia:
cueros 'Test2.Data' miembro 'Test1.Data' heredado. Usa la nueva palabra clave si te intentabas esconder.
¿Por qué esto es solo una advertencia y qué efecto tendrá la adición de la palabra clave "nueva"?
Según mis pruebas, no puedo encontrar ninguna diferencia una vez que se agrega la palabra clave "nueva".
No me malinterpreten, estoy a favor de ser explícito, pero tenía curiosidad sobre el beneficio de agregar "nuevo".
Mis únicas ideas sobre lo que podría ser son:
- legibilidad mejorada
- algún ahorro en tiempo de ejecución cuando el compilador no se deja de entender lo inevitable el camino más largo
nuevo no hace nada (excepto suprimir una advertencia). La ocultación ocurre al omitir la anulación. –
Sí, pero al especificar la palabra clave 'new', oculta explícitamente el miembro. Aunque al final no cambia nada, demuestra que sabes lo que estás haciendo y no olvidó accidentalmente la palabra clave 'anular' –
No, esconderse también sucede sin –