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 :

overloads (vs 2005)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut overloads (vs 2005)
    bjour
    considérons 2 fonctions avec des paramètres différents
    que je mette overloads devant ou non, ça fait la même chose (possibilité de lancer l'une ou l'autre selon les paramètres)
    quelle est alors l'utilité de mettre overloads, y a-t-il une nuance ?
    merci
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  2. #2
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    salut

    J'ai fait 2-3 petits tests et regarde un peu sur le net, selon toute vraissemblance, Overloads est facultatif
    Cependant quand tu commence a avoir une pyramide de classes heritees saupoudrees de generiques, t'est bien content que VB les mette automatiquement

    PS: il faut mettre Overloads uniquement si il a deja ete explicitement mis une fois pour une autre methode

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 58
    Par défaut Bonjour
    VB 2005 fournit le mot clé Overloads, qui peut être utilisé quand on veut explicitement marquer un membre comme surchargé (Overloded). L’utilisation de ce mot clé est complétement optionnel. Le compilateur assume que vous surcharger un membre (méthode par exemple) s’il trouve des méthodes avec un nom identique et avec des arguments différents :
    Public Overloads Function Ajouter(ByVal x As Integer, ByVal y As Integer) As Integer
    Return x + y
    End Function
    Public Overloads Function Ajouter(ByVal x As Double, ByVal y As Double) As Double
    Return x + y
    End Function
    Public Overloads Function Ajouter(ByVal x As Long, ByVal y As Long) As Long
    Return x + y
    End Function
    *****

    A noter lorsque vous surcharger une méthode :
    - Si, le seul point de différence entre 2 méthodes est ByVal/ByRef, ce n’est pas suffisant pour que la méthode puisse etre Overloded
    Exemple : les méthodes suivantes engendrent une erreur !!!
    Sub Methode1(ByVal aAs Integer)
    End Sub
    Sub Methode1 (ByRef aAs Integer)
    End Sub


    - Egalement, si une méthode est surchargée seulement par des arguments marqués Optional, vous allez recevoir une erreur !!:
    Sub Methode1(ByVal aAs Integer)
    End Sub
    Sub Methode1 (ByVal aAs Integer, Optional ByVal b As Integer = 0)
    End Sub

    La raison pour laquelle le compilateur refuse de permettre ce surchargement (this overload) est due au fait qu’il ne peut enlever l’ambiguité dans ce code suivant :

    Sub Main()
    ...
    ' Est-ce que vous appellez la méthode avec un seul argument ou celle avec deux arguments et negliger le second paramètre ?
    Methode1(1)
    End Sub

Discussions similaires

  1. News Visual C++ 2005 Gratuit et autres versions
    Par farscape dans le forum Visual C++
    Réponses: 3
    Dernier message: 30/08/2007, 12h20
  2. [Concours] Le SMILEY d'or - edition aout 2005 terminée
    Par Superstivix dans le forum Jeux
    Réponses: 5
    Dernier message: 31/08/2005, 09h20
  3. Overload
    Par JMF dans le forum Langage
    Réponses: 8
    Dernier message: 18/04/2003, 09h19

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