11
juillet
2007
Shadows
juillet
2007
Fred m’a fait découvrir ce matin cet article intitulé « Surcharge, Redéfinition et Occultation avec VB.NET » dans lequel j’ai découvert une notion qui n’existe pas, à ma connaissance, en C# : l’occultation.
Si quelqu’un connait un équivalent C#, n’hésitez surtout pas à mettre un commentaire.
Non ce n’est pas la même chose.
En effet si tu as deux classe C1 et C2 avec C2 qui hérite de C1 et que tu définis une méthode M1 qui prend un paramètre dans C1 et une méthode M1 qui ne prend pas de paramètre dans C2, le mot clé new ne te servira à rien (tu auras même un warning) car M1 de C2 et M1 de C1 n’ont pas la même signature. Dans tous les cas, cela ne t’empêchera pas d’appeler la méthode M1 de C1 à partir d’une instance de C2.
Le new se traduit par Overloads en VB (l’inverse n’est pas en revanche pas forcément vrai).
Je ne sais pas si c’est exactement la même chose, mais en C# le mot clé « new » permet de masquer une méthode héritée non virtuelle.