Oggi ho trovato qualcosa nel codice legacy. Ha "statico nuovo" per una funzione. Sembra cosìQual è il punto del modificatore "new static" per una funzione?
class Foo
{
public static void Do()
{
Console.WriteLine("Foo.Do");
}
}
class Bar: Foo
{
public static new void Do()
{
Console.WriteLine("Bar.Do");
}
}
Non capisco il statica nuovo modificatore per il metodo fare in classe Bar. In C#, il metodo statico può essere richiamato solo con il nome della classe anziché con il nome dell'oggetto. Quindi, non penso ci sia alcuna differenza tra avere il "nuovo" e non.
In genere, se una certa sintassi non è necessaria, C# tratta solo di un errore. Qualcuno ha qualche idea sul perché C# consente tale sintassi?
Vale la pena notare che _ solo _ sopprime un avviso. Nessun altro effetto –
Buon punto. L'ho aggiunto all'anwer. –
mentre sopprime solo l'avviso, rende esplicita l'intenzione (per evitare qualsiasi confusione), controlla la mia risposta – eglasius