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 :

ParameterInfo d'un fonction avec params


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 84
    Par défaut ParameterInfo d'un fonction avec params
    Bonjour,

    Comment obtenir les ParameterInfo d'une fonction possédant un nombre indéterminé de paramètres?

    Lorsque j'appelle la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyFunction(object o1, out object o2);
    J'arrive à obtenir le ParameterInfo de sendData mais pas de o1 et o2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
        protected object[] MyFunction(params object[] sendData)
        {
             StackTrace callStack = new StackTrace(0, false);
             StackFrame callingMethodFrame = callStack.GetFrame(0);
             MethodBase callingMethod = callingMethodFrame.GetMethod();
             ParameterInfo[] parametersInfo = callingMethod.GetParameters();
     
             List<object> inParams = new List<object>();
             List<object> outParams = new List<object>();
     
             for (int i = 0; i < sendData.Length; i++)
             {
                 object value = sendData[i];
                 ParameterInfo info = parametersInfo[parametersInfo.Length - sendData.Length + i];
     
                 if (info.IsOut)
                 {
                      outParams.Add(value);
                 }
                 else
                 {
                      inParams.Add(value);
                 }
             }
             ..........
        }
    Merci d'avance

    Arnaud

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Par défaut
    C'est pas très clair ?

    Tu passes deux objets via params object[] sendData, ou bien tu veux étudier une fonction avec cette signature MyFunction(object o1, out object o2); ?

    Dans le premier cas, MyFunction( o1, o2 ), tu n'as qu'un paramètre (donc un seul ParameterInfo): c'est sendData qui est un tableau de 2 valeurs.

    Dans le second, tu as bien 2 paramètres, avec chacun leur description...

    PS : tu ne peux appeler MyFunction( o1, out o2 ) avec MyFunction( params object[] sendData ), à cause du out

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 84
    Par défaut
    Exact!

    Dans mon test je n'avais pas mis le second paramètre comme out.

    J'ai essayé dans un premier temps d'obtenir les ParameterInfo de mes deux objets puis je comptais ajouter le mot clef out ensuite.

    Effectivement ce que j'ai essayé de faire n'est pas possible.

    Dsl du dérangement.

    Arnaud

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Question sur les fonctions avec "TABLE" comme param. de retour
    Par Alex01 dans le forum Développement
    Réponses: 2
    Dernier message: 17/11/2008, 09h26
  3. Réponses: 9
    Dernier message: 30/03/2006, 16h44
  4. fonction avec param ...
    Par petitsims dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/01/2005, 20h32
  5. Une fonction avec des attributs non obligatoires
    Par YanK dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2002, 13h39

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