Hoy encontré algo en el código heredado. Tiene "estático nuevo" para una función. Se parece a esto.¿Cuál es el punto del modificador "estático nuevo" para una función?
class Foo
{
public static void Do()
{
Console.WriteLine("Foo.Do");
}
}
class Bar: Foo
{
public static new void Do()
{
Console.WriteLine("Bar.Do");
}
}
No entiendo el nuevo modificador staticpara el método hacer en clase Bar. En C#, el método estático solo se puede invocar con el nombre de clase en lugar del nombre del objeto. Entonces, no creo que haya ninguna diferencia entre tener lo "nuevo" y no.
En general, si alguna sintaxis es innecesaria, C# solo tratar es un error. ¿Alguien tiene alguna idea sobre por qué C# permite esa sintaxis?
Vale la pena señalar que _sólo_ suprime una advertencia. Sin otros efectos –
Buen punto. Yo agregué eso al anwer. –
mientras solo suprime la advertencia, hace que la intención sea explícita (para evitar cualquier confusión), verifique mi respuesta – eglasius