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 :

[C#] Comment énumerer les membres d'un Objet et leurs valeurs ?


Sujet :

C#

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 8
    Points : 4
    Points
    4
    Par défaut [C#] Comment énumerer les membres d'un Objet et leurs valeurs ?
    Bonjour à tous !

    Je souhaite faire une fonction qui prend en parametre n'importe quel Object (des classes qlconques contenant des membres public)
    Et qui enumere les membres de cet objet ainsi que ses valeurs
    du genre :
    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
     
    public class MyClass()
    {
      int a = 2;
      string b = "hello";
    }
    static void DoIt(Object inObject)
    {
      // Comment faire?
    }
    static void Main()
    {
      MyClass Test ;
      DoIt(Test );
    }
    Dans cet exemple, je dois donc renvoyer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Name = a ; Value = 2
    Name = b ; Value = hello
    J'ai bien trouvé un moyen pour recuperer le nom des membres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Type myType = inClass.GetType();
    FieldInfo []info = myType.GetFields();
    Mais je ne vois pas comment recuperer la valeur de "a" et de "b" dans l'Object.

    Donc si vous avez qlques pistes, n'hesitez pas !

    Merci

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    tu doit utiliser la réflexion.

    En gros tu découpes ton pb en deux : Premierement découvrir les types (ça apparament tu commences à le faire) , puis tu fait une invocation dynamique (un exemple ici
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2005
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Ok, merci.
    finalement j'etais pas si loin de la solution :p

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public static void doit(  object inClass)
    {
      Console.WriteLine("CLASS : "+inClass.GetType().ToString());
      Type myType = inClass.GetType();
      FieldInfo []info = myType.GetFields();
     
      for(int i = 0; i < info.Length; i++)
      {
        Console.WriteLine(info[i].FieldType + " : "+info[i].Name + " = "+info
    [i].GetValue(inClass));
      }
    }

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/11/2012, 13h18
  2. Réponses: 1
    Dernier message: 06/07/2012, 14h47
  3. Réponses: 44
    Dernier message: 05/10/2011, 14h37
  4. récuper les membres d'un objet
    Par jeandadaf dans le forum VB.NET
    Réponses: 7
    Dernier message: 17/06/2009, 12h17
  5. Réponses: 6
    Dernier message: 04/03/2007, 19h16

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