IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] new et override


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Par défaut [C#] new et override
    Quequ'un peut-il m'expliquer la différence entre le modifieur new et le couple de modifier virtual/override :

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Oui, MSDN :)

  3. #3
    Membre éprouvé
    Avatar de crjo
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Par défaut
    la différence, c'est qu'avec le modifier new, tu perds tous les avantages du polymorphisme.

    Exemple :
    Soit une classe MyBaseClass avec une méthode SomeMethod déclarée virtual.
    Soit une classe MyDerivedClass qui hérite de MyBaseClass, dans laquelle on déclare une méthode SomeMethod
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    MyDerivedClass d = new MyDerivedClass();
    MyBaseClass b = d;
     
    d.SomeMethod();
    b.SomeMethod();
    Cas 1: dans la classe dérivée, on utilise le modifier override
    Les deux appels à SomeMethod sont identiques : c'est bien la méthode de la classe dérivée qui sera appelée dans les 2 cas.

    Cas 2: dans la classe dérivée, on utilise le modifier new
    d.SomeMethod appelle la méthode de la classe dérivée, tandis que b.SomeMethod appella la méthode de la classe de base.


    Personnellement, je crois qu'avec un bon design OO, on ne devrait jamais utiliser le modifier new. Mais ça n'engage que moi, bien évidemment...

  4. #4
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Par défaut
    Merci à crjo pour sa réponse. Voila qui est clair.

    Je suis désolé si ma question n'a pas interressé Maniak mais une chose est sûre sa réponse n'interresse personne.

    J'oubliais: tout est dans MSDN.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Citation Envoyé par jab
    Je suis désolé si ma question n'a pas interressé Maniak mais une chose est sûre sa réponse n'interresse personne.

    J'oubliais: tout est dans MSDN. :roll:
    Vi, notamment des exemples du même genre que ci-dessus et beaucoup plus de détails. Bref à portée de F1.

    Désolé du manque d'enthousiasme pour taper une réponse qui se trouve en quelques secondes hein :)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Difference entre New et (virtual / override)
    Par shimomura22 dans le forum C#
    Réponses: 2
    Dernier message: 16/04/2015, 21h08
  2. Réponses: 1
    Dernier message: 31/10/2013, 12h44
  3. Réponses: 12
    Dernier message: 02/04/2011, 22h07
  4. Différences de réactions entre new et override en mode design
    Par ClaudeBg dans le forum Windows Forms
    Réponses: 15
    Dernier message: 19/08/2009, 14h43
  5. [] Insérer DE et Datareport existant ds new projet
    Par khany dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/01/2003, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo