Récupérer un arraylist existant dans un constructeur

Signaler
Messages postés
25
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
11 décembre 2006
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
salut,

je crée un constructeur avec une instance d'arraylist:

public Catégorie(){
if (Lescatégories null)lescatégories

new
ArrayList();}

puis un autre

public Catégorie(
int i,
string nc){

idCatégorie = i;

nomCatégorie = nc;

 

//ArrayList myar = ArrayList.Repeat(lescat‚gories, lescatégories.Count);

}
il ne peut récupérer la propriété count dans le commentaire en vert,pourtant j'ai une propriété avec un get et un set pour l'arraylist..
j'aimerai dans ce constructeur récupérer l'instance de mon arraylist en cours initialisée dans le premier.
Ce cas ne concerne que ma classe catégorie.Mais j'ai besoin de récupérer mon arraylist ou du moins sa valeur dans le second vu que je développe en 3/3.

pouvez vous m'aider,merci

7 réponses

Messages postés
305
Date d'inscription
vendredi 18 juillet 2003
Statut
Membre
Dernière intervention
2 août 2010
2
Il te manque sur ton 2ème constructeur l'appel du premier
c-a-d
public Catégorie(int i, string nc):this()

{
...
}
(sauf erreur de ma part!!)
Théo
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
oui c'est ca RMI... sauf qu'en général on procère ainsi :

public Catégorie() : this(0, string.Empty) {}

public Catégorie(
int i,
string nc){

    if
(Lescatégories ==
null) {
        lescatégories = new
ArrayList();

    }

    idCatégorie = i;

    nomCatégorie = nc;

 

//ArrayList myar = ArrayList.Repeat(lescat?gories, lescatégories.Count);}

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
25
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
11 décembre 2006

merci les gars!!!
Messages postés
25
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
11 décembre 2006

using



System;


using



System.Collections;


using



System.Collections.Generic;


namespace



CCL{


public



class



Catégorie

{










private



int
idCatégorie;


private



string
nomCatégorie;


private



ArrayList
lescatégories;


public
Catégorie(){


if
(Lescatégories ==

null
){lescatégories =


new



ArrayList
();}

}


public
Catégorie(

string
nc):

this
(){

nomCatégorie = nc;

}


public
Catégorie(

int
i,

string
nc):

this
(){


this
.idCatégorie = i;


this
.nomCatégorie = nc;

 

 


 toujours le meme probleme mais au niveau du second constructeur,pour le compilateur Lescatégories est null et donc il recrée une instance.



}











 



















public



ArrayList
Lescatégories{


get
{

return
lescatégories; }


set
{ lescatégories =

value
; }}


public



string
Nomc{


get
{

return
nomCatégorie; }


set
{ nomCatégorie =

value
; }}


public



int
IdCatégorie{


get
{

return
idCatégorie; }


set
{ idCatégorie =

value
; }}

}

}
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
17
cest normal qu'il soit nul puisque si tu fais

Catégorie(monint, mastring);

tu appelle Catégorie(monint, mastring) une seule fois.....donc quand tu y passe ca sera nul....(cest pas pour autant que tu dois lappeler plusieurs fois)...

autre chose, en général on évite les accents dans le code ;)
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
17
correction : tu appelle Catégorie() une seule fois (le ": this()").
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
si tu veux partager "Lescatégories" entre tes instances, mets le en static

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]