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 :

Fonction identique retour différent


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2006
    Messages : 130
    Par défaut Fonction identique retour différent
    Bonjour,


    J'ai besoin de savoir comment faire ceci :

    J'ai la fonction suivante :
    Public Function PrestationBaladeuse(ByVal CnxString As String, ByVal idOs As Long) As DataTable
    qui fait 2 requêtes, un traitement et me retourne un datatable.

    Pour un autre cas j'ai besoin également des prestation baladeuse mais qu'elle me retourne sous un autre format : As Dictionary(Of Long, Decimal)

    afin d'éviter de refaire les requêtes etc, dans la seconde j'allais appeler la premiere et faire le nécessaire pour retourner en dico.

    Le petit problème c'est que les fonctions ont le même nom et que je ne peux faire de surcharge, la même signature (je croyais que dans la signature la sortie était prise en compte)

    A part nommer la fonction autrement (avec _dico à la fin comme me le dis mon responsable), je ne vois pas comment faire.

    Merci de votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,
    Effectivement Tu ne peux pas surcharger une fonction dont seul le type différe
    Dans ce cas tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Public Function PrestationBaladeuse(ByVal CnxString As String, ByVal idOs As Long, ByRef dico As Dictionary(Of Long, Decimal)) As DataTable
    Ou tu peux récupérer le dico puisqu'il est en byref
    et dans cette fonction tu appeles la première qui te donne le datatable et tu alimentes ton dico

    Autre solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Public Function PrestationBaladeuse(ByVal CnxString As String, ByVal idOs As Long, ByVal bDico as Boolean) As Dictionary(Of Long, Decimal)
    bDico servant seulement à permettre la surcharge
    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2006
    Messages : 130
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Bonjour,
    Effectivement Tu ne peux pas surcharger une fonction dont seul le type différe
    Dans ce cas tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Public Function PrestationBaladeuse(ByVal CnxString As String, ByVal idOs As Long, ByRef dico As Dictionary(Of Long, Decimal)) As DataTable
    Ou tu peux récupérer le dico puisqu'il est en byref
    et dans cette fonction tu appeles la première qui te donne le datatable et tu alimentes ton dico

    Autre solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Public Function PrestationBaladeuse(ByVal CnxString As String, ByVal idOs As Long, ByVal bDico as Boolean) As Dictionary(Of Long, Decimal)
    bDico servant seulement à permettre la surcharge
    A+, Hervé.
    Ok ! Merci bien vu.
    sinon l'autre "bidouille" c'était d'inverser les 2 premiers paramètres.
    C'est un peu bête de dire que l'on veut un dico en retour et de passer un booléen pour confirmer dans le paramètre.
    Je viens de penser à autre chose sinon que je testerais Mardi.

Discussions similaires

  1. Appel de deux fonctions identiques se trouvant dans deux fichiers différents
    Par djtinou666 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/06/2013, 18h23
  2. [LG] Compilation de fonction 'sans retour', ...
    Par poppels dans le forum Langage
    Réponses: 5
    Dernier message: 16/10/2005, 12h08
  3. Réponses: 3
    Dernier message: 06/10/2005, 15h21
  4. Réponses: 3
    Dernier message: 30/05/2005, 23h28
  5. Réponses: 9
    Dernier message: 02/03/2005, 22h46

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