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 :

Problème d'initialisateur d'instance dans une structure


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Points : 72
    Points
    72
    Par défaut Problème d'initialisateur d'instance dans une structure
    Bonjour à tous,
    Voila je travaille sur un petit programme sans bdd et j'ai déclarer deux structure Client et Operation
    la structure Client encapsule un ensemble de donnée et j'aurai voulu stocker les informations des opérations. Pour cela j'ai au début déclarer un tableau d'Operation dans ma structure Client.
    Voiçi un extrait du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     public struct Client 
            {
                 long nCompte;
                 string intitule;
                 string nom;
                 string prenom;
                 string adresse;
                 double soldeIni;
                 Operation[] operation = new Operation[20];
     
     
            }
    Mais j'ai une erreur qui dit qu'on ne peut pas instancier les instance dans une structure.
    Est ce que quelqu'un voit comment on peut contourner le problème sachant que je ne travaille qu'avec des structure et pas de classe.
    Merçi

  2. #2
    Membre habitué Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par 0coco0 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     public struct Client 
            {
                public long nCompte;
                public string intitule;
                public string nom;
                public string prenom;
                public string adresse;
                public double soldeIni;
                Operation[] operation = new Operation[20];
     
     
            }
    Merçi
    Tu déclare ta structure "Client" en tant que public, tu ne peux pas déclarer tes variables publiques aussi, elles le seront forcément!
    Défenseur de l'Apéro Social

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Points : 72
    Points
    72
    Par défaut
    Ok merçi pour la précision!!
    mais mon problème n'est toujours pas résolue

  4. #4
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par Saten
    Tu déclare ta structure "Client" en tant que public, tu ne peux pas déclarer tes variables publiques aussi, elles le seront forcément
    C'est faux, la visibilité de la classe et celle des membres est indépendante et encore heureux, sinon ce serait un beau bordel

    Sinon pour ton problème 0coco0, tu ne peux pas initialiser les membres d'une structure de cette façon. Tu dois forcément passer par un constructeur avec argument, une structure n'acceptant pas de constructeur sans argument.

    Pourquoi utilises-tu des structures plutôt que des classes ?
    Pas de questions techniques par MP

  5. #5
    Membre habitué Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Points : 133
    Points
    133
    Par défaut
    Autant pour moi, mille excuses!

    Je n'utilise jamais de structures, car elles sont identiques aux classes, à part qu'elles ne bénificient pas des héritages et tout, donc autant utiliser les classes non?
    Défenseur de l'Apéro Social

  6. #6
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    On utilise généralement les structures pour regrouper des données liées entre elles. Les structures étant créées sur la pile, elles doivent être de taille réduite, il faut donc limiter les données que l'on stocke dans la structure. Un point est un bon exemple de structure (une coordonnée X et Y si on travaille en 2D).

    Une structure ne peut pas hériter d'une autre, par contre elle peut implémenter des interfaces.
    Pas de questions techniques par MP

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    pas de débat classe / Structure ... ya des explications dans le msdn

    A savoir, surtout au niveau de l'allocation sur le tas (stack)... pour les structures, donc, à priori, "plus" rapide

    Sinon, structure ou classe, c une question de choix. Disons que si c'est juste pour contenir des infos sans avoir de méthodes ou "bcp" de méthode, on peut utiliser les structures plutot que les classes

    (Genre dans GDI, ou on a des structures et des classes sans forcément comprendre à 100% pourquoi )

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2008
    Messages : 101
    Points : 72
    Points
    72
    Par défaut
    Merçi à tous pour vos conseille!!
    j'ai finalement trouver un moyen de contourner le problème et ceci en créant un tableau d'opération en dehors de la structure Client et en ajoutant un attribut nCompte dans ma structure Opération.
    C'est un peu tiré par les cheveux mais ça marche.
    Sinon pourquoi pas les classes? j'aurai aimer mais l'énoncé spécifier qu'il fallait travailler avec les structure. Question de travailler un peu plus.
    Ciao

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 14/04/2014, 00h02
  2. Problème sur un pointeur dans une structure
    Par steph_1 dans le forum Langage
    Réponses: 5
    Dernier message: 05/09/2007, 18h59
  3. Réponses: 4
    Dernier message: 31/07/2007, 21h52
  4. Réponses: 7
    Dernier message: 13/03/2007, 11h20
  5. Réponses: 7
    Dernier message: 21/12/2005, 16h44

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