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 :

Creation de Struct de manière dynamique ?


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2013
    Messages : 31
    Points : 26
    Points
    26
    Par défaut Creation de Struct de manière dynamique ?
    Bonjour à tous


    J'ai compris comment créer une structure, par exemple, celle ci, pour des livres...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    struct book
                {
                public string titre;
                public string auteur;
                }
    ...permettant donc, une fois déclaré, de donner ses propriétés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     public static void Main(string[] args)
                {
     
                book livre1;
                book livre2;
     
                livre1.titre = "les Misérables";
                livre1.auteur = "Victor Hugo";
     
                livre2.titre = "La bête Humaine";
                livre2.auteur = "Emile Zola";
     
    	  }

    Toutefois, est il possible de déclarer cela de façon dynamique, par exemple lors d'une boucle, qui aurait créé livre1, livre2, livre3.... livre20. Le nom changeant et sincèrement au fil de la boucle.


    Cela vous parait il faisable, ou alors faut il s'orienter vers une autre piste ?


    Merci

  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
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Au lieu de créer une structure il faut créer une classe et utiliser les collections.
    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 chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 647
    Points : 2 168
    Points
    2 168
    Par défaut
    Comme l'a dit rv26t , il est préfèrable d'utiliser des classes au lieu des structures , bien que la différence soit minime.

    Du coup , tu pourrais faire comme ça :

    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
     
     public static void Main(string[] args)
                {
                List<book> livres = new List<book>();
     
                for (int i = 0;i < 50;i++) // on créer 50 livres
                {
                    livres.Add(new book());
                }
                livres[0].titre = "les Misérables";
                livres[0].auteur = "Victor Hugo";
     
                livres[1].titre = "La bête Humaine";
                livres[1].auteur = "Emile Zola";
     
                // ETC ...
    	  }
    Tu peux instancié autant d'objets book que tu veux , par contre pour remplir leurs propriétés , ça sera a la main ou venant d'un fichier / BDD

  4. #4
    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
    Points : 5 100
    Points
    5 100
    Par défaut
    Exemple avec la classe (note le new avec paramètres pour créer directement book)
    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
        class book
        {
            public string titre {get; set;}
            public string auteur { get; set; }
     
            public book() {}
            public book(string t, string a)
            {
                titre = t;
                auteur = a;
            }
            public override string ToString()
            {
                return String.Format("{0} ({1}) ", titre, auteur);
            }
        }
    }
    Utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                List<book> ListBook = new List<book>() ;
                ListBook.Add(new book("les Misérables","Victor Hugo"));
                ListBook.Add(new book("La bête Humaine","Emile Zola"));
                foreach (book b in ListBook )
                {
                     Console.WriteLine(b.ToString());    // MessageBox.Show(b.ToString());
                }
    Ainsi comme l'indique PixelJuice si tes données viennent d'une base de données dans la boucle de lecture de celles-ci tu fais le ListBook.Add(new book( data BDD ... ).
    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.

Discussions similaires

  1. Creation d'un composant de manière dynamique
    Par stanislas dans le forum Langage
    Réponses: 6
    Dernier message: 03/02/2009, 15h47
  2. Pb de creation et destruction de tabsheet dynamique
    Par Unformatic dans le forum Composants VCL
    Réponses: 4
    Dernier message: 28/04/2006, 14h09
  3. [JTable] Changer les colonnes de manière dynamique
    Par gg2laba dans le forum Composants
    Réponses: 3
    Dernier message: 03/10/2005, 23h39
  4. Creation menu perso de manière manuelle
    Par pitistef dans le forum MFC
    Réponses: 1
    Dernier message: 03/09/2005, 19h37
  5. [VB6] creation et gestion de contrôle dynamique
    Par olivierx dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 23/04/2004, 00h09

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