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

C# Discussion :

Return et array()


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Par défaut Return et array()
    Bonjour,

    j'ai un souci, de débutant certes, mais je suis là pour apprendre

    je n'arrive pas a retourner à la fin d'une classe,
    plusieurs string,
    car comme on le sait, un fois qu'1 return est exécuté, ce qui suit, n'est plus accessible.

    J'optais donc pour inscrire ces différents élément dans un Array

    Mon tableau contient donc mes 2 données, que je veux renvoyer via un "return"
    mais "return" m'oblige a fournir un index au tableau,
    et je perd ainsi l'autre item...

    comment y remedier svp ? merci

  2. #2
    Membre confirmé

    Inscrit en
    Décembre 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 85
    Par défaut
    tu peux renvoyer n'importe quel objet dans ton return.
    Et le tableau de string en fait partie, je ne vois pas ton probleme de perdre un item.

    Mais dans ton cas, tu ferais mieux de créer une classe contenant tes deux chaines:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            public class deuxChaines
            {
                public String chaine;
                public String chaine2;
            }
    et après tu instancies cette classe, et tu renvoies le couple de valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                deuxChaines sortie = new deuxChaines();
                sortie.chaine = "bla";
                sortie.chaine2 = "blabla";
                return sortie;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Par défaut
    mais "return" m'oblige a fournir un index au tableau,
    et je perd ainsi l'autre item...
    et bien j'ai une erreur de syntaxe, si je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "return Monarray;"
    ou "return Monarray[];"
    il lui faut impérativement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return Monarray[0 ou 1]
    met je vais tenter ton exemple de chaine, merci

  4. #4
    Membre confirmé

    Inscrit en
    Décembre 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 85
    Par défaut
    mais, tu as bien changé le type de retour de ta methode ?
    Si tu laisses "String", c normal qu'il te demande un index, car il ne veux qu'une string.
    Il faut mettre String[], et la tu pourra mettre

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Par défaut
    euh je vois plus trop là ...

    où devrais-je regarder ca ?

    pour l'instant ce que je viens d'essayer de faire apres ce que tu m'as dit, c'est de mettre ca, a la suite des string que j'initialise dans ma classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string renvoi, msg, Source, Desc,Help, Interface;
    string[] retour;
    ensuite plus bas, j'ajoute dans retour, un peu comme un tableau (tu vas certainement me dire que c'en est un, mais je vois nullpart de array, arraylist d'initialisé)
    bref j'insère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    retour.SetValue(msg,0);
    retour.SetValue(renvoi,1);
    et en fin de classe :

    il me répond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur de syntaxe, valeur attendue
    il veut un index comme avant

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    S'il n'y a effectivement que deux valeurs à retourner, tu peux aussi passer les variables par référence en utilisant le mot-clé 'ref', je t'invite à lire la documentation SDK .NET pour plus de détails sur l'utilisation du passage de paramètres par référence.

    +
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  7. #7
    Membre confirmé

    Inscrit en
    Décembre 2004
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 85
    Par défaut
    je parlais du type de retour dans la signature de ta méthode.
    As tu mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public String maMethode()
    {
     
    }
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public String[] maMethode()
    {
     
    }
    ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 81
    Par défaut
    en effet, maintenant que je regarde au bon endroit, c'était écrit String au lieu de String[] (c'est ca de réutiliser des classes toutes faites...),
    et en bidouillant un peu partout où je parlais de string au lieu de string[]
    j'ai maintenant un beau tableau envoyé via la méthode de ma classe avec les valeurs que j'avais besoin,

    merci beaucoup pour votre temps :-p

Discussions similaires

  1. xfire wsdl return array of objects
    Par simosamosomo dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 20/01/2015, 18h00
  2. Réponses: 4
    Dernier message: 09/07/2006, 14h41
  3. probleme de pointeur ? return array
    Par Funraill.net dans le forum C
    Réponses: 23
    Dernier message: 05/06/2006, 16h52
  4. return array vide et non null
    Par mereyj dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/04/2005, 20h25

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