Quel est le point de “statique nouveau” modificateur pour une fonction?

Aujourd'hui, j'ai trouvé quelque chose dans le code de legs. Il a "statique nouveau" pour une fonction. Il ressemble à ceci.

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 statique de la nouvelle modificateur du Ne méthode dans la classe Bar. En C#, méthode statique ne peut être invoquée avec un nom de classe à la place du nom de l'objet. Donc, je ne pense pas qu'il y a une différence entre avoir de la "nouvelle" et pas.

Généralement, si certains de la syntaxe est inutile, C# de traitement, c'est une erreur.
Quelqu'un a la moindre idée de pourquoi C# permet par exemple de syntaxe?

InformationsquelleAutor Morgan Cheng | 2009-03-19