nouveau mot-clé dans la signature de la méthode

Lors de l'exécution d'un refactoring, j'ai fini par créer une méthode comme dans l'exemple ci-dessous. Le type de données a été modifiée par souci de simplicité.

Je le précédent avait une instruction d'affectation comme ceci:

MyObject myVar = new MyObject();

Il a été reconstruit à cet effet par accident:

private static new MyObject CreateSomething()
{
  return new MyObject{"Something New"};
}

C'était le résultat d'un copier/coller erreur de ma part, mais le new mot-clé dans private static new est valide et compile.

Question: Quel est le new mot-clé signifier dans une signature de méthode? Je suppose que c'est quelque chose que introduit en C# 3.0?

Comment est-ce différent de override?

  • Quelques notes sur l'opportunité de la méthode de la fuite: blogs.msdn.com/ericlippert/archive/2008/05/21/...
  • Great post. Je n'ai jamais pensé à la méthode de masquage de cette façon, comme dans oui, l'objet EST une chose, mais nous sommes maintenant en le présentant comme quelque chose d'autre, si nous voulons que le comportement de la chose que nous sommes présenter QUE. Intelligente...
  • Une double question à l'avenir, et j'ai essayé de répondre dans le détail: l'Utilisation de nouveaux mots clés de c#
  • L'utilisation de new comme un modificateur sur une méthode (ou un autre membre de type) n'est pas "quelque chose introduits dans C# 3.0". Il a été là depuis la première version de C#.
  • vous avez répété quelques réponses ci-dessous avec votre commentaire.
  • stackoverflow.com/questions/9201344/...

InformationsquelleAutor p.campbell | 2009-06-18