¿Qué efecto tiene la palabra clave "nueva" en C # y por qué es solo una advertencia cuando no se emplea?
Considere el siguiente código:
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:
'Test2.Data' oculta el miembro heredado 'Test1.Data'. Usa la nueva palabra clave si te intentabas esconder.
¿Por qué esto es solo una advertencia y qué efecto tendrá agregar la palabra clave "nueva"?
Según mis pruebas, no puedo encontrar ninguna diferencia una vez que se agrega la palabra clave "nuevo".
No me malinterpretes, estoy dispuesto a ser explícito, pero sentía curiosidad por el beneficio de agregar "nuevo".
Mis únicos pensamientos sobre lo que podría ser son:
Mejor legibilidad humana.Algunos ahorran en tiempo de ejecución cuando el compilador no se queda para resolver lo inevitable en el largo camino