Récupérer un arraylist existant dans un constructeur

akira3 Messages postés 25 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 11 décembre 2006 - 24 oct. 2006 à 11:48
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 24 oct. 2006 à 16:52
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

cs_RMI Messages postés 305 Date d'inscription vendredi 18 juillet 2003 Statut Membre Dernière intervention 2 août 2010 2
24 oct. 2006 à 12:12
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
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
24 oct. 2006 à 13:32
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#]
0
akira3 Messages postés 25 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 11 décembre 2006
24 oct. 2006 à 13:53
merci les gars!!!
0
akira3 Messages postés 25 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 11 décembre 2006
24 oct. 2006 à 16:29
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
; }}

}

}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
24 oct. 2006 à 16:40
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 ;)
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
24 oct. 2006 à 16:40
correction : tu appelle Catégorie() une seule fois (le ": this()").
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
24 oct. 2006 à 16:52
si tu veux partager "Lescatégories" entre tes instances, mets le en static

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