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 initialiser un tableau de classes ?


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Points : 54
    Points
    54
    Par défaut [C#] Comment initialiser un tableau de classes ?
    Bonjour,

    Je m'explique.
    J'ai une classe C1 et une classe C2

    C2 a pour attribut int id et string nom.


    Dans les attributs de C1 j'ai :
    Un peu plus loin, dans une méthode de ma classe C1, j'essaye de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    c = new C2[4];
     
    c.id = 2; // c'est a cette ligne que je plante.
    Message d'erreur :
    Informations supplémentaires : La référence d'objet n'est pas définie à une instance d'un objet.


    Je comprends pas.
    merci

    désolé j'en ai mis 2 par plantage de mon pc au moment de l'enregistrement

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 445
    Points
    3 445
    Par défaut
    Bonjour,

    Quand tu fais c = new C2[4] tu déclares un tableau d'objets C2, et pour y accéder il faut utiliser l'indice de tableau, comme ceci :


  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Points : 54
    Points
    54
    Par défaut
    Excusez moi, j'en é mis 2 a cause d'un semblant de plantage.

    J'ai bien mis l'indice. je l'ai oublié dans le code de ce premier topic

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 445
    Points
    3 445
    Par défaut
    Bon je vois alors où est ton problème.

    Je pensais que tu avais juste copier les lignes interessantes, mais il y a quelque chose que tu as oublié : un tableau n'est rien de plus qu'un conteneur, vide au départ.

    Il faut le remplir, pour pouvoir en utiliser les "cases". Ainsi, il faut faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    c = new C2[4];
    c[0] = new C2(); // Cette ligne te manque
    c[0].id = 2;
    A+

  5. #5
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 55
    Points : 54
    Points
    54
    Par défaut
    OK, merci bien ca fonctionne.

    Je pensé qu'avec c = new C2[4] il "initialisé" bien toutes les cases...

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 69
    Points : 142
    Points
    142
    Par défaut
    Normal.

    Lorsque tu fais par exemple :
    Tu es obligé de faire ensuite ceci :
    C'est juste une variable qui va recevoir une "référence" (une adresse) d'un objet, objet qu'il faudra préalablement avoir instancier soit grace à un "new" soit grace à une méthode renvoyant une référence de cette dite instance.

    Donc pour :
    C'est pareil, c'est un tableau ... d'instances, donc pour chaque indice du tableau, il faut lui affecter une référence d'un objet.

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

Discussions similaires

  1. [XL-2007] comment initialiser un tableau ou une plage à vide
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/09/2010, 22h53
  2. Comment initialiser un tableau de struct ?
    Par konfo dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/03/2009, 15h51
  3. Comment initialiser un tableau ?
    Par Nebelmann dans le forum WinDev
    Réponses: 10
    Dernier message: 21/02/2007, 15h02
  4. Réponses: 7
    Dernier message: 30/01/2007, 09h48
  5. Réponses: 35
    Dernier message: 14/02/2006, 18h57

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