Aujourd'hui, j'ai trouvé quelque chose dans le code existant. Il a "statique nouveau" pour une fonction. Ça ressemble à ça.Quel est le point du modificateur "static new" pour une fonction?
class Foo
{
public static void Do()
{
Console.WriteLine("Foo.Do");
}
}
class Bar: Foo
{
public static new void Do()
{
Console.WriteLine("Bar.Do");
}
}
Je ne comprends pas le modificateur statique nouveau pour la méthode Do en classe Bar. En C#, la méthode statique ne peut être invoquée qu'avec le nom de la classe au lieu du nom de l'objet. Donc, je ne pense pas qu'il y ait une différence entre avoir le "nouveau" et non.
Généralement, si une syntaxe est inutile, C# traite juste c'est erreur. Quelqu'un a une idée de la raison pour laquelle C# permet une telle syntaxe?
Il est à noter que _only_ supprime un avertissement. Aucun autre effet –
Bon point. J'ai ajouté cela à la réponse. –
alors qu'il ne supprime que l'avertissement, il rend l'intention explicite (pour éviter toute confusion), vérifiez ma réponse – eglasius