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

VB.NET Discussion :

[VB.NET]Comment correctement utiliser Overrides/Overloads?


Sujet :

VB.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Points : 286
    Points
    286
    Par défaut [VB.NET]Comment correctement utiliser Overrides/Overloads?
    Bonjour à tous,
    De temps en temps le compilateur me signale une erreur pour une fonction lorsque j'hérite d'une classe et que je cherche à redéfinir ses méthodes.
    Mais j'ai remarqué que je pouvais aussi bien utiliser le mot Overrides que Overloads pour supprimer cette erreur.
    Or je suppose que si les 2 mots existent, même si leur signification semble fort semblable, il doit y avoir une différence et un meilleur moment d'utiliser l'un plutot que l'autre.
    Pourriez-vous m'aider?

    Merci d'avance,
    Nicolas

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 118
    Points
    118
    Par défaut
    Le mot clé Overloads signifie que tu vas utiliser une procédure qui porte le même nom mais avec des paramètres différents (ex : constructeur)

    Pour moi tu nes pas obligé de mettre Overloads dans la déclaration de ta méthode, il le fait automatiquement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub New
    End Sub
     
    Sub New(str as Sting)
    End Sub
    L'overrding est plus marrant, il te permet de redefinir une méthode que tu as déclaré dans une classe parente dans la classe enfant.

    Attention pour le faire tu dois déclarer ta méthode comme "Overridable" dans la classe pére. et ensuite dans la classe enfant tu redéclares cette méthode "Overrides".

    tu peux aussi utiliser NotOverridable ( Interdiction de la définir ) ou MustOverrides(Obligation de la redefinir ) mais a ce moment la tu dois déclarer ta classe comme MustInherits

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Points : 286
    Points
    286
    Par défaut
    Ok, je pense que je comprends.
    En termes C++iens, pourrait-on dire que le mot clé Overridable défini une fonction virtuelle?
    Le mot clé Overloads étant tout simplement implicite en C++.

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Pour ma part, si le membre de la classe de base est déclaré Overridable, alors au minimum la substitution déclarera Overrides.

    Pour ce qui est de Overloads, il s'agit d'une autre information qui signale que le membre dérivé surcharge le membre de la classe de base.

    Lorsque tu developpes, tu dois également penser à comment ta classe va être réutilisée par d'autres si elle est dérivable.
    Ainsi si un autre developpeur dérive ta classe, le membre que tu as simplement déclarée Overrides, pourra être substitué par un simple Overloads. Par contre si tu l'as déclaré Overridable Overrides, alors il pourra selon son besoin le substituer avec simplement Overrides ou alors Overloads Overrides
    Overloads
    Overrides

    Comparaison des mots clés dans différents langages
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 113
    Points : 118
    Points
    118
    Par défaut
    Oui tout a fait Overridable = Virtual
    et MustOverrides = Abstract

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 413
    Points : 286
    Points
    286
    Par défaut
    Merci à tous pour ces informations, je ne suis pas encore tout à fait prêt à jongler correctement avec ça mais j'ai saisi les différences
    (Pas mal la comparaison des mots clés dans les différents langages )

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

Discussions similaires

  1. [VS 2005/C#] Comment correctement utiliser le concepteur DataSet ?
    Par Mat_F dans le forum Accès aux données
    Réponses: 5
    Dernier message: 29/08/2006, 15h12
  2. [Outils][InstallWIz.Net]Comment l'utiliser pour mon projet?
    Par fantomchris dans le forum EDI/Outils
    Réponses: 30
    Dernier message: 19/04/2006, 18h35
  3. [CF][PPC/VB.NET] Comment utiliser les Socket avec Pocket PC ?
    Par joefou dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 17/05/2005, 14h24
  4. [VB.NET] Comment utiliser VScrollBar verticale
    Par stephane93fr dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/04/2005, 14h00
  5. Réponses: 3
    Dernier message: 11/02/2005, 14h39

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