Là j'avoue être perdu ! J'ai le même bout de code sous les yeux et tout fonctionne très bien.
N'auriez vous pas un souci d'initialisation ? Si vous effectuez un test du genre :
TOTO toto = new TOTO() if(toto.monclient[0] != null) toto.monclient[0].age&; else MessageBox.Show("Il n'y a pas d'objet CLIENT d'initialisé");
-- arno - http://www.dotnetguru2.org/acleret/
"Vincent" a écrit dans le message de news:
j'ai mal tappé
Voilà ce que j'ai fait :
struct CLIENT ( struct CLIENT est défini dans le namespace ) { public int age; }
dans ma classe TOTO: public List<CLIENT> maliste = new List<CLIENT>();
dansune méthode de la classe TOTO : public CLIENT monclient = new CLIENT(); monclient.age%; maliste.add(monclient)
tout ça fonctionne. :)
dans mon main :
TOTO toto = new TOTO() toto.monclient[0].age&; ben ca coince message d'erreur = il ne s'agit pas d'une variable ....
j'ai tenté : struct CLIENT ( struct CLIENT est défini dans le namespace ) { public int age; public Age { set{age=value;} get{return age;} } } ensuite toto.monclient[0].Age&; ben ca coince idem
je débute en C# et je craque :)
Là j'avoue être perdu ! J'ai le même bout de code sous les yeux et tout
fonctionne très bien.
N'auriez vous pas un souci d'initialisation ? Si vous effectuez un test du
genre :
TOTO toto = new TOTO()
if(toto.monclient[0] != null) toto.monclient[0].age&;
else MessageBox.Show("Il n'y a pas d'objet CLIENT d'initialisé");
--
arno - http://www.dotnetguru2.org/acleret/
"Vincent" <vincent31spamaoter@wanadoo.fr> a écrit dans le message de news:
u0OTCG3UGHA.1572@tk2msftngp13.phx.gbl...
j'ai mal tappé
Voilà ce que j'ai fait :
struct CLIENT ( struct CLIENT est défini dans le namespace )
{
public int age;
}
dans ma classe TOTO:
public List<CLIENT> maliste = new List<CLIENT>();
dansune méthode de la classe TOTO :
public CLIENT monclient = new CLIENT();
monclient.age%;
maliste.add(monclient)
tout ça fonctionne. :)
dans mon main :
TOTO toto = new TOTO()
toto.monclient[0].age&; ben ca coince message d'erreur = il ne s'agit
pas d'une variable ....
j'ai tenté :
struct CLIENT ( struct CLIENT est défini dans le namespace )
{
public int age;
public Age
{
set{age=value;}
get{return age;}
}
}
ensuite
toto.monclient[0].Age&; ben ca coince idem
Là j'avoue être perdu ! J'ai le même bout de code sous les yeux et tout fonctionne très bien.
N'auriez vous pas un souci d'initialisation ? Si vous effectuez un test du genre :
TOTO toto = new TOTO() if(toto.monclient[0] != null) toto.monclient[0].age&; else MessageBox.Show("Il n'y a pas d'objet CLIENT d'initialisé");
-- arno - http://www.dotnetguru2.org/acleret/
"Vincent" a écrit dans le message de news:
j'ai mal tappé
Voilà ce que j'ai fait :
struct CLIENT ( struct CLIENT est défini dans le namespace ) { public int age; }
dans ma classe TOTO: public List<CLIENT> maliste = new List<CLIENT>();
dansune méthode de la classe TOTO : public CLIENT monclient = new CLIENT(); monclient.age%; maliste.add(monclient)
tout ça fonctionne. :)
dans mon main :
TOTO toto = new TOTO() toto.monclient[0].age&; ben ca coince message d'erreur = il ne s'agit pas d'une variable ....
j'ai tenté : struct CLIENT ( struct CLIENT est défini dans le namespace ) { public int age; public Age { set{age=value;} get{return age;} } } ensuite toto.monclient[0].Age&; ben ca coince idem
je débute en C# et je craque :)
DVDB
C'est un problème de portée de votre variable 'monclient' qui est déclarée publique mais au niveau d'une méthode (donc sa portée est restreinte à la méthode dans laquelle est déclarée).
Il faut déclarer la variable 'monclient' au niveau de la classe et là vous pourrez y accéder ou utiliser la variable 'maliste' déjà déclarée. D'après ce que vous avez fait pour le moment, vous pourriez par exemple avoir:
dans votre main :
TOTO toto = new TOTO() CLIENT monclient = new CLIENT(); monclient.age%; toto.maliste.add(monclient)
puis
toto.maliste[0].age&;
"Vincent" a écrit :
j'ai mal tappé
Voilà ce que j'ai fait :
struct CLIENT ( struct CLIENT est défini dans le namespace ) { public int age; }
dans ma classe TOTO: public List<CLIENT> maliste = new List<CLIENT>();
dansune méthode de la classe TOTO : public CLIENT monclient = new CLIENT(); monclient.age%; maliste.add(monclient)
tout ça fonctionne. :)
dans mon main :
TOTO toto = new TOTO() toto.monclient[0].age&; ben ca coince message d'erreur = il ne s'agit pas d'une variable ....
j'ai tenté : struct CLIENT ( struct CLIENT est défini dans le namespace ) { public int age; public Age { set{age=value;} get{return age;} } } ensuite toto.monclient[0].Age&; ben ca coince idem
je débute en C# et je craque :)
"Arnaud CLERET" a écrit dans le message de news: > La source de l'erreur est là : > - int age = private int age et non public > > Dans tous les cas (et ça n'engage que moi :)), les normes de > développements et bonnes pratiques préviligient le fait : > - De toujours préciser la portée d'un membre (private, public, internal > ...) > - D'écrire un accesseur pour tout membre public permettant ainsi > d'effectuer les controles nécessaire lors d'affectation d'une valeur. Par > exemple : > public int age > { > get {return this._age;} > set > { > if(value < 0) throw new ArgumentException("Valeur incompatible > !"); > this._age = value; > } > } > > -- > arno - http://www.dotnetguru2.org/acleret/ > > "Vincent" a écrit dans le message de news: > >> Merci pour votre aide, >> j'ai du mal avec la syntaxe : >> >> si j'ai : >> >> public struc CLIENT >> { >> public string nom; >> int age; >> } >> >> ensuite >> >> List<CLIENT> MaListeClient = new List<CLIENT>(); >> >> où dois je déclarer : >> public int age >> { >> get {return this._age} >> set {this._age = value} >> } >> >> Merci >> >> "Arnaud CLERET" a écrit dans le >> message de news: % >>> En effet je parlais d'accesseur et de readonly car quand vous faites : >>> MaListeClient[0].age%; cela signifie que la propriété "age" de l'objet >>> "CLIENT" possède un accesseur de type : >>> public int age >>> { >>> get {return this._age} >>> set {this._age = value} >>> } >>> ou plus simplement : >>> public int age. >>> Dans ces deux cas l'affectation de valeur doit fonctionner. >>> >>> Par contre si vous ne stipuler pas le "set" dans l'accesseur ou que vous >>> déclarer votre propriété avec le mot clé "readonly" ou "const", il vous >>> sera impossible d'y affecter une valeur telle que vous souhaitez le >>> faire. >>> >>> -- >>> arno - http://www.dotnetguru2.org/acleret/ >>> "didier" a écrit dans le message de news: >>> >>>> DVDB a écrit : >>>>> Si vous utilisez le framework 2.0 (VS2005 donc), et si le contexte de >>>>> votre code le permet, pourquoi ne pas utiliser la classe >>>>> System.Collections.Generic.List? >>>>> >>>>> Pour faire simple, c'est la même chose que ArrayList, mais fortement >>>>> typé, ce qui permet d'eviter les cast, fournit une détection des >>>>> erreurs de types à la compilation, etc... >>>>> >>>>> Pour utiliser: >>>>> >>>>> List<CLIENT> MaListeClients=new List<CLIENT>(); >>>>> MaListeClient.Add(new CLIENT()); >>>>> MaListeClient[0].age%; >>>>> >>>>> Si ça peut servir... >>>>> >>>>> >>>>> "Vincent" a écrit : >>>>> >>>>> >>>>>>Bonjour, >>>>>> >>>>>>Dans mon libre sur C#, rien n'indique comment modifier les données >>>>>>d'un ArrayList. Est-ce possible ? >>>>>> >>>>>>j'ai un ArrayList CLIENT qui contient des objets ( structure : >>>>>>personne.nom personne.age ...) >>>>>> >>>>>>Comment modifier un élément ? du style CLIENT[indice].age = 25 >>>>>> >>>>>>Merci >>>>>> >>>>>>Vincent >>>>>> >>>>>>. >>>>>> >>>> Bonjour, >>>> J'ai essayé avec List et ça ne marche pas. >>>> Il me dit que ce n'est pas une variable. >>>> On dirait que c'est en lecture seule ? >>>> Y a un autre truc a faire avant ? >>>> >>>> Merci >>>> >>>> dans un news précédent il est question d'accesseur et de readonly ?! >>>> >>>> encore Merci >>>> Vincent >>> >>> >> >> > >
C'est un problème de portée de votre variable 'monclient' qui est déclarée
publique mais au niveau d'une méthode (donc sa portée est restreinte à la
méthode dans laquelle est déclarée).
Il faut déclarer la variable 'monclient' au niveau de la classe et là vous
pourrez y accéder ou utiliser la variable 'maliste' déjà déclarée. D'après ce
que vous avez fait pour le moment, vous pourriez par exemple avoir:
dans votre main :
TOTO toto = new TOTO()
CLIENT monclient = new CLIENT();
monclient.age%;
toto.maliste.add(monclient)
puis
toto.maliste[0].age&;
"Vincent" a écrit :
j'ai mal tappé
Voilà ce que j'ai fait :
struct CLIENT ( struct CLIENT est défini dans le namespace )
{
public int age;
}
dans ma classe TOTO:
public List<CLIENT> maliste = new List<CLIENT>();
dansune méthode de la classe TOTO :
public CLIENT monclient = new CLIENT();
monclient.age%;
maliste.add(monclient)
tout ça fonctionne. :)
dans mon main :
TOTO toto = new TOTO()
toto.monclient[0].age&; ben ca coince message d'erreur = il ne s'agit pas
d'une variable ....
j'ai tenté :
struct CLIENT ( struct CLIENT est défini dans le namespace )
{
public int age;
public Age
{
set{age=value;}
get{return age;}
}
}
ensuite
toto.monclient[0].Age&; ben ca coince idem
je débute en C# et je craque :)
"Arnaud CLERET" <arnaud.cleret@gmail.antispam.com> a écrit dans le message
de news: OkywHz2UGHA.5552@TK2MSFTNGP14.phx.gbl...
> La source de l'erreur est là :
> - int age = private int age et non public
>
> Dans tous les cas (et ça n'engage que moi :)), les normes de
> développements et bonnes pratiques préviligient le fait :
> - De toujours préciser la portée d'un membre (private, public, internal
> ...)
> - D'écrire un accesseur pour tout membre public permettant ainsi
> d'effectuer les controles nécessaire lors d'affectation d'une valeur. Par
> exemple :
> public int age
> {
> get {return this._age;}
> set
> {
> if(value < 0) throw new ArgumentException("Valeur incompatible
> !");
> this._age = value;
> }
> }
>
> --
> arno - http://www.dotnetguru2.org/acleret/
>
> "Vincent" <vincent31spamaoter@wanadoo.fr> a écrit dans le message de news:
> ON0Ewp2UGHA.1304@tk2msftngp13.phx.gbl...
>> Merci pour votre aide,
>> j'ai du mal avec la syntaxe :
>>
>> si j'ai :
>>
>> public struc CLIENT
>> {
>> public string nom;
>> int age;
>> }
>>
>> ensuite
>>
>> List<CLIENT> MaListeClient = new List<CLIENT>();
>>
>> où dois je déclarer :
>> public int age
>> {
>> get {return this._age}
>> set {this._age = value}
>> }
>>
>> Merci
>>
>> "Arnaud CLERET" <arnaud.cleret@gmail.antispam.com> a écrit dans le
>> message de news: %23pnLSn0UGHA.4452@TK2MSFTNGP12.phx.gbl...
>>> En effet je parlais d'accesseur et de readonly car quand vous faites :
>>> MaListeClient[0].age%; cela signifie que la propriété "age" de l'objet
>>> "CLIENT" possède un accesseur de type :
>>> public int age
>>> {
>>> get {return this._age}
>>> set {this._age = value}
>>> }
>>> ou plus simplement :
>>> public int age.
>>> Dans ces deux cas l'affectation de valeur doit fonctionner.
>>>
>>> Par contre si vous ne stipuler pas le "set" dans l'accesseur ou que vous
>>> déclarer votre propriété avec le mot clé "readonly" ou "const", il vous
>>> sera impossible d'y affecter une valeur telle que vous souhaitez le
>>> faire.
>>>
>>> --
>>> arno - http://www.dotnetguru2.org/acleret/
>>> "didier" <nospam@nospam.fr> a écrit dans le message de news:
>>> edNigVxUGHA.5808@TK2MSFTNGP12.phx.gbl...
>>>> DVDB a écrit :
>>>>> Si vous utilisez le framework 2.0 (VS2005 donc), et si le contexte de
>>>>> votre code le permet, pourquoi ne pas utiliser la classe
>>>>> System.Collections.Generic.List?
>>>>>
>>>>> Pour faire simple, c'est la même chose que ArrayList, mais fortement
>>>>> typé, ce qui permet d'eviter les cast, fournit une détection des
>>>>> erreurs de types à la compilation, etc...
>>>>>
>>>>> Pour utiliser:
>>>>>
>>>>> List<CLIENT> MaListeClients=new List<CLIENT>();
>>>>> MaListeClient.Add(new CLIENT());
>>>>> MaListeClient[0].age%;
>>>>>
>>>>> Si ça peut servir...
>>>>>
>>>>>
>>>>> "Vincent" a écrit :
>>>>>
>>>>>
>>>>>>Bonjour,
>>>>>>
>>>>>>Dans mon libre sur C#, rien n'indique comment modifier les données
>>>>>>d'un ArrayList. Est-ce possible ?
>>>>>>
>>>>>>j'ai un ArrayList CLIENT qui contient des objets ( structure :
>>>>>>personne.nom personne.age ...)
>>>>>>
>>>>>>Comment modifier un élément ? du style CLIENT[indice].age = 25
>>>>>>
>>>>>>Merci
>>>>>>
>>>>>>Vincent
>>>>>>
>>>>>>.
>>>>>>
>>>> Bonjour,
>>>> J'ai essayé avec List et ça ne marche pas.
>>>> Il me dit que ce n'est pas une variable.
>>>> On dirait que c'est en lecture seule ?
>>>> Y a un autre truc a faire avant ?
>>>>
>>>> Merci
>>>>
>>>> dans un news précédent il est question d'accesseur et de readonly ?!
>>>>
>>>> encore Merci
>>>> Vincent
>>>
>>>
>>
>>
>
>
C'est un problème de portée de votre variable 'monclient' qui est déclarée publique mais au niveau d'une méthode (donc sa portée est restreinte à la méthode dans laquelle est déclarée).
Il faut déclarer la variable 'monclient' au niveau de la classe et là vous pourrez y accéder ou utiliser la variable 'maliste' déjà déclarée. D'après ce que vous avez fait pour le moment, vous pourriez par exemple avoir:
dans votre main :
TOTO toto = new TOTO() CLIENT monclient = new CLIENT(); monclient.age%; toto.maliste.add(monclient)
puis
toto.maliste[0].age&;
"Vincent" a écrit :
j'ai mal tappé
Voilà ce que j'ai fait :
struct CLIENT ( struct CLIENT est défini dans le namespace ) { public int age; }
dans ma classe TOTO: public List<CLIENT> maliste = new List<CLIENT>();
dansune méthode de la classe TOTO : public CLIENT monclient = new CLIENT(); monclient.age%; maliste.add(monclient)
tout ça fonctionne. :)
dans mon main :
TOTO toto = new TOTO() toto.monclient[0].age&; ben ca coince message d'erreur = il ne s'agit pas d'une variable ....
j'ai tenté : struct CLIENT ( struct CLIENT est défini dans le namespace ) { public int age; public Age { set{age=value;} get{return age;} } } ensuite toto.monclient[0].Age&; ben ca coince idem
je débute en C# et je craque :)
"Arnaud CLERET" a écrit dans le message de news: > La source de l'erreur est là : > - int age = private int age et non public > > Dans tous les cas (et ça n'engage que moi :)), les normes de > développements et bonnes pratiques préviligient le fait : > - De toujours préciser la portée d'un membre (private, public, internal > ...) > - D'écrire un accesseur pour tout membre public permettant ainsi > d'effectuer les controles nécessaire lors d'affectation d'une valeur. Par > exemple : > public int age > { > get {return this._age;} > set > { > if(value < 0) throw new ArgumentException("Valeur incompatible > !"); > this._age = value; > } > } > > -- > arno - http://www.dotnetguru2.org/acleret/ > > "Vincent" a écrit dans le message de news: > >> Merci pour votre aide, >> j'ai du mal avec la syntaxe : >> >> si j'ai : >> >> public struc CLIENT >> { >> public string nom; >> int age; >> } >> >> ensuite >> >> List<CLIENT> MaListeClient = new List<CLIENT>(); >> >> où dois je déclarer : >> public int age >> { >> get {return this._age} >> set {this._age = value} >> } >> >> Merci >> >> "Arnaud CLERET" a écrit dans le >> message de news: % >>> En effet je parlais d'accesseur et de readonly car quand vous faites : >>> MaListeClient[0].age%; cela signifie que la propriété "age" de l'objet >>> "CLIENT" possède un accesseur de type : >>> public int age >>> { >>> get {return this._age} >>> set {this._age = value} >>> } >>> ou plus simplement : >>> public int age. >>> Dans ces deux cas l'affectation de valeur doit fonctionner. >>> >>> Par contre si vous ne stipuler pas le "set" dans l'accesseur ou que vous >>> déclarer votre propriété avec le mot clé "readonly" ou "const", il vous >>> sera impossible d'y affecter une valeur telle que vous souhaitez le >>> faire. >>> >>> -- >>> arno - http://www.dotnetguru2.org/acleret/ >>> "didier" a écrit dans le message de news: >>> >>>> DVDB a écrit : >>>>> Si vous utilisez le framework 2.0 (VS2005 donc), et si le contexte de >>>>> votre code le permet, pourquoi ne pas utiliser la classe >>>>> System.Collections.Generic.List? >>>>> >>>>> Pour faire simple, c'est la même chose que ArrayList, mais fortement >>>>> typé, ce qui permet d'eviter les cast, fournit une détection des >>>>> erreurs de types à la compilation, etc... >>>>> >>>>> Pour utiliser: >>>>> >>>>> List<CLIENT> MaListeClients=new List<CLIENT>(); >>>>> MaListeClient.Add(new CLIENT()); >>>>> MaListeClient[0].age%; >>>>> >>>>> Si ça peut servir... >>>>> >>>>> >>>>> "Vincent" a écrit : >>>>> >>>>> >>>>>>Bonjour, >>>>>> >>>>>>Dans mon libre sur C#, rien n'indique comment modifier les données >>>>>>d'un ArrayList. Est-ce possible ? >>>>>> >>>>>>j'ai un ArrayList CLIENT qui contient des objets ( structure : >>>>>>personne.nom personne.age ...) >>>>>> >>>>>>Comment modifier un élément ? du style CLIENT[indice].age = 25 >>>>>> >>>>>>Merci >>>>>> >>>>>>Vincent >>>>>> >>>>>>. >>>>>> >>>> Bonjour, >>>> J'ai essayé avec List et ça ne marche pas. >>>> Il me dit que ce n'est pas une variable. >>>> On dirait que c'est en lecture seule ? >>>> Y a un autre truc a faire avant ? >>>> >>>> Merci >>>> >>>> dans un news précédent il est question d'accesseur et de readonly ?! >>>> >>>> encore Merci >>>> Vincent >>> >>> >> >> > >