en .Net, les collections ne sont pas typées comme on en a l'habitude avec
genericité.
un ArrayList manipule des object.
ArrayList maArraylist = new ArrayList;
maArraylist.Add("youpi") ;
maArraylist.Add(new Classe()) ;
maArraylist.Add(25.6) ;
donc dans votre code, comment le compilateur peut il savoir / deviner que
doit accepter des Classe dans le Add, Remove, et [] et rien d'autre.
soit vous faites dans le genre gros porc. comme ceci.
// maArraylist[0] est un object. on demande donc poliment si c'est un
Classe classe = (Classe)maArraylist[0] ;
classe.mamethode() ;
soit vous abandonnez l'ArrayList au profit de ceci
class ClasseCollection : CollectionBase
{
public void Add(Classe c)
{
List.Add(c) ;
}
public Classe this[int index]
{
get { return (Classe)List[index] ; }
set { List[index] = value; }
}
etc...
}
il va de soi que je daignerai plus vous adresser la parole si vous
choisissez la premiere solution :o)
la deuxieme répond aux exigences du typage. quand vous passez par le [] de
la ClasseCollection, le compilateur vois qu'il s'agit d'un Classe. tout le
reste est de l'implantation.
si vous passez autre chose, ça ne compilera pas. ce qui est le but
et dans un avenir proche, vous écrirez directement ce genre de choses
List[Classe] liste = new List[Classe] ;
voila voila
en .Net, les collections ne sont pas typées comme on en a l'habitude avec
genericité.
un ArrayList manipule des object.
ArrayList maArraylist = new ArrayList;
maArraylist.Add("youpi") ;
maArraylist.Add(new Classe()) ;
maArraylist.Add(25.6) ;
donc dans votre code, comment le compilateur peut il savoir / deviner que
doit accepter des Classe dans le Add, Remove, et [] et rien d'autre.
soit vous faites dans le genre gros porc. comme ceci.
// maArraylist[0] est un object. on demande donc poliment si c'est un
Classe classe = (Classe)maArraylist[0] ;
classe.mamethode() ;
soit vous abandonnez l'ArrayList au profit de ceci
class ClasseCollection : CollectionBase
{
public void Add(Classe c)
{
List.Add(c) ;
}
public Classe this[int index]
{
get { return (Classe)List[index] ; }
set { List[index] = value; }
}
etc...
}
il va de soi que je daignerai plus vous adresser la parole si vous
choisissez la premiere solution :o)
la deuxieme répond aux exigences du typage. quand vous passez par le [] de
la ClasseCollection, le compilateur vois qu'il s'agit d'un Classe. tout le
reste est de l'implantation.
si vous passez autre chose, ça ne compilera pas. ce qui est le but
et dans un avenir proche, vous écrirez directement ce genre de choses
List[Classe] liste = new List[Classe] ;
voila voila
en .Net, les collections ne sont pas typées comme on en a l'habitude avec
genericité.
un ArrayList manipule des object.
ArrayList maArraylist = new ArrayList;
maArraylist.Add("youpi") ;
maArraylist.Add(new Classe()) ;
maArraylist.Add(25.6) ;
donc dans votre code, comment le compilateur peut il savoir / deviner que
doit accepter des Classe dans le Add, Remove, et [] et rien d'autre.
soit vous faites dans le genre gros porc. comme ceci.
// maArraylist[0] est un object. on demande donc poliment si c'est un
Classe classe = (Classe)maArraylist[0] ;
classe.mamethode() ;
soit vous abandonnez l'ArrayList au profit de ceci
class ClasseCollection : CollectionBase
{
public void Add(Classe c)
{
List.Add(c) ;
}
public Classe this[int index]
{
get { return (Classe)List[index] ; }
set { List[index] = value; }
}
etc...
}
il va de soi que je daignerai plus vous adresser la parole si vous
choisissez la premiere solution :o)
la deuxieme répond aux exigences du typage. quand vous passez par le [] de
la ClasseCollection, le compilateur vois qu'il s'agit d'un Classe. tout le
reste est de l'implantation.
si vous passez autre chose, ça ne compilera pas. ce qui est le but
et dans un avenir proche, vous écrirez directement ce genre de choses
List[Classe] liste = new List[Classe] ;
voila voila
> Gros porc c'est vite dis ! Ca dépend du travail à faire ! Parfois pas le
choix de mélanger les objets !!!
> Gros porc c'est vite dis ! Ca dépend du travail à faire ! Parfois pas le
choix de mélanger les objets !!!
> Gros porc c'est vite dis ! Ca dépend du travail à faire ! Parfois pas le
choix de mélanger les objets !!!
> Gros porc c'est vite dis ! Ca dépend du travail à faire ! Parfois pas le
> choix de mélanger les objets !!!
J'aimerai bien un example concret...
--
Vincent
> Gros porc c'est vite dis ! Ca dépend du travail à faire ! Parfois pas le
> choix de mélanger les objets !!!
J'aimerai bien un example concret...
--
Vincent
> Gros porc c'est vite dis ! Ca dépend du travail à faire ! Parfois pas le
> choix de mélanger les objets !!!
J'aimerai bien un example concret...
--
Vincent
Ils devraient au moins implémenter une interface commune.
Paul Bacelar
"Vincent Lascaux" wrote in message
news:412d0feb$0$13684$
> > Gros porc c'est vite dis ! Ca dépend du travail à faire ! Parfois pas
> > choix de mélanger les objets !!!
>
> J'aimerai bien un example concret...
>
> --
> Vincent
>
>
Ils devraient au moins implémenter une interface commune.
Paul Bacelar
"Vincent Lascaux" <nospam@nospam.org> wrote in message
news:412d0feb$0$13684$636a15ce@news.free.fr...
> > Gros porc c'est vite dis ! Ca dépend du travail à faire ! Parfois pas
> > choix de mélanger les objets !!!
>
> J'aimerai bien un example concret...
>
> --
> Vincent
>
>
Ils devraient au moins implémenter une interface commune.
Paul Bacelar
"Vincent Lascaux" wrote in message
news:412d0feb$0$13684$
> > Gros porc c'est vite dis ! Ca dépend du travail à faire ! Parfois pas
> > choix de mélanger les objets !!!
>
> J'aimerai bien un example concret...
>
> --
> Vincent
>
>
> Parfait, c'est exactement ce que je recherchais!
Merci beaucoup, j'ai pris la deuxieme solution, on peut
toujours se parler!! :-)
Merci!!
> Parfait, c'est exactement ce que je recherchais!
Merci beaucoup, j'ai pris la deuxieme solution, on peut
toujours se parler!! :-)
Merci!!
> Parfait, c'est exactement ce que je recherchais!
Merci beaucoup, j'ai pris la deuxieme solution, on peut
toujours se parler!! :-)
Merci!!
> > Ils devraient au moins implémenter une interface commune.
Actuellement je termine de programmer une gestion complète de fichier MP3
autonome. ... et ca
marche plutot bien ! :-)
> > Ils devraient au moins implémenter une interface commune.
Actuellement je termine de programmer une gestion complète de fichier MP3
autonome. ... et ca
marche plutot bien ! :-)
> > Ils devraient au moins implémenter une interface commune.
Actuellement je termine de programmer une gestion complète de fichier MP3
autonome. ... et ca
marche plutot bien ! :-)
> > Ils devraient au moins implémenter une interface commune.
>
> Actuellement je termine de programmer une gestion complète de fichier
> autonome. ... et ca
> marche plutot bien ! :-)
ok. voila le cas . maintenant, ta collection, elle accepte un nombre
restreint de type. j'imagine que tu vas pas faire rentrer dedans des
FileWatcher ou des HamsterCollection. donc déja, un ArrayList, si tu Add
quelque chose d'indesirable, ça passera quand meme à la compile. et à
imaginer que plus tard tu autorise d'autre type et en interdise d'autre,
que tu as casté partout, le compilateur ne te dira rien sur les endroits
dependants du changement.
et j'imagine que les traitements que tu fais sont specifiques pour chaque
type, mais qu'ils s'inscrivent dans une generalité.
donc
abstract class Item
{
public abstract int TailleEnOctet() ;
public abstract void WriteToXml(XmlWriter writer) ;
...
}
class DoubleItem : Item...
class StringItem : Item...
- object systematique : je persiste dans mon affirmation. ça tiens de
l'inconscience.
- object a bon escient : je m'interoge. il y'a des rares cas comme
IDataRecord, ou peut être...
bon, puis c'est un peu tot pour le Troll de la rentrée. on va attendre
Septembre :o)
> > Ils devraient au moins implémenter une interface commune.
>
> Actuellement je termine de programmer une gestion complète de fichier
> autonome. ... et ca
> marche plutot bien ! :-)
ok. voila le cas . maintenant, ta collection, elle accepte un nombre
restreint de type. j'imagine que tu vas pas faire rentrer dedans des
FileWatcher ou des HamsterCollection. donc déja, un ArrayList, si tu Add
quelque chose d'indesirable, ça passera quand meme à la compile. et à
imaginer que plus tard tu autorise d'autre type et en interdise d'autre,
que tu as casté partout, le compilateur ne te dira rien sur les endroits
dependants du changement.
et j'imagine que les traitements que tu fais sont specifiques pour chaque
type, mais qu'ils s'inscrivent dans une generalité.
donc
abstract class Item
{
public abstract int TailleEnOctet() ;
public abstract void WriteToXml(XmlWriter writer) ;
...
}
class DoubleItem : Item...
class StringItem : Item...
- object systematique : je persiste dans mon affirmation. ça tiens de
l'inconscience.
- object a bon escient : je m'interoge. il y'a des rares cas comme
IDataRecord, ou peut être...
bon, puis c'est un peu tot pour le Troll de la rentrée. on va attendre
Septembre :o)
> > Ils devraient au moins implémenter une interface commune.
>
> Actuellement je termine de programmer une gestion complète de fichier
> autonome. ... et ca
> marche plutot bien ! :-)
ok. voila le cas . maintenant, ta collection, elle accepte un nombre
restreint de type. j'imagine que tu vas pas faire rentrer dedans des
FileWatcher ou des HamsterCollection. donc déja, un ArrayList, si tu Add
quelque chose d'indesirable, ça passera quand meme à la compile. et à
imaginer que plus tard tu autorise d'autre type et en interdise d'autre,
que tu as casté partout, le compilateur ne te dira rien sur les endroits
dependants du changement.
et j'imagine que les traitements que tu fais sont specifiques pour chaque
type, mais qu'ils s'inscrivent dans une generalité.
donc
abstract class Item
{
public abstract int TailleEnOctet() ;
public abstract void WriteToXml(XmlWriter writer) ;
...
}
class DoubleItem : Item...
class StringItem : Item...
- object systematique : je persiste dans mon affirmation. ça tiens de
l'inconscience.
- object a bon escient : je m'interoge. il y'a des rares cas comme
IDataRecord, ou peut être...
bon, puis c'est un peu tot pour le Troll de la rentrée. on va attendre
Septembre :o)
LOL ! je suis meme une brute épaisse car à certains endroits je caste meme
pas ! je travail sur la gestion d'erreur de cast ... lol
"Ambassadeur Kosh" a écrit dans le message de
news:OwA%
> > > Ils devraient au moins implémenter une interface commune.
> >
> > Actuellement je termine de programmer une gestion complète de fichier
MP3
> > autonome. ... et ca
> > marche plutot bien ! :-)
>
> ok. voila le cas . maintenant, ta collection, elle accepte un nombre
> restreint de type. j'imagine que tu vas pas faire rentrer dedans des
> FileWatcher ou des HamsterCollection. donc déja, un ArrayList, si tu Add
> quelque chose d'indesirable, ça passera quand meme à la compile. et à
> imaginer que plus tard tu autorise d'autre type et en interdise d'autre,
vu
> que tu as casté partout, le compilateur ne te dira rien sur les endroits
> dependants du changement.
>
> et j'imagine que les traitements que tu fais sont specifiques pour
> type, mais qu'ils s'inscrivent dans une generalité.
>
> donc
>
> abstract class Item
> {
> public abstract int TailleEnOctet() ;
> public abstract void WriteToXml(XmlWriter writer) ;
> ...
> }
>
> class DoubleItem : Item...
> class StringItem : Item...
>
> - object systematique : je persiste dans mon affirmation. ça tiens de
> l'inconscience.
> - object a bon escient : je m'interoge. il y'a des rares cas comme
> IDataRecord, ou peut être...
>
> bon, puis c'est un peu tot pour le Troll de la rentrée. on va attendre
> Septembre :o)
>
>
LOL ! je suis meme une brute épaisse car à certains endroits je caste meme
pas ! je travail sur la gestion d'erreur de cast ... lol
"Ambassadeur Kosh" <kosh.naranek@babylon5.net> a écrit dans le message de
news:OwA%23G3ziEHA.140@TK2MSFTNGP12.phx.gbl...
> > > Ils devraient au moins implémenter une interface commune.
> >
> > Actuellement je termine de programmer une gestion complète de fichier
MP3
> > autonome. ... et ca
> > marche plutot bien ! :-)
>
> ok. voila le cas . maintenant, ta collection, elle accepte un nombre
> restreint de type. j'imagine que tu vas pas faire rentrer dedans des
> FileWatcher ou des HamsterCollection. donc déja, un ArrayList, si tu Add
> quelque chose d'indesirable, ça passera quand meme à la compile. et à
> imaginer que plus tard tu autorise d'autre type et en interdise d'autre,
vu
> que tu as casté partout, le compilateur ne te dira rien sur les endroits
> dependants du changement.
>
> et j'imagine que les traitements que tu fais sont specifiques pour
> type, mais qu'ils s'inscrivent dans une generalité.
>
> donc
>
> abstract class Item
> {
> public abstract int TailleEnOctet() ;
> public abstract void WriteToXml(XmlWriter writer) ;
> ...
> }
>
> class DoubleItem : Item...
> class StringItem : Item...
>
> - object systematique : je persiste dans mon affirmation. ça tiens de
> l'inconscience.
> - object a bon escient : je m'interoge. il y'a des rares cas comme
> IDataRecord, ou peut être...
>
> bon, puis c'est un peu tot pour le Troll de la rentrée. on va attendre
> Septembre :o)
>
>
LOL ! je suis meme une brute épaisse car à certains endroits je caste meme
pas ! je travail sur la gestion d'erreur de cast ... lol
"Ambassadeur Kosh" a écrit dans le message de
news:OwA%
> > > Ils devraient au moins implémenter une interface commune.
> >
> > Actuellement je termine de programmer une gestion complète de fichier
MP3
> > autonome. ... et ca
> > marche plutot bien ! :-)
>
> ok. voila le cas . maintenant, ta collection, elle accepte un nombre
> restreint de type. j'imagine que tu vas pas faire rentrer dedans des
> FileWatcher ou des HamsterCollection. donc déja, un ArrayList, si tu Add
> quelque chose d'indesirable, ça passera quand meme à la compile. et à
> imaginer que plus tard tu autorise d'autre type et en interdise d'autre,
vu
> que tu as casté partout, le compilateur ne te dira rien sur les endroits
> dependants du changement.
>
> et j'imagine que les traitements que tu fais sont specifiques pour
> type, mais qu'ils s'inscrivent dans une generalité.
>
> donc
>
> abstract class Item
> {
> public abstract int TailleEnOctet() ;
> public abstract void WriteToXml(XmlWriter writer) ;
> ...
> }
>
> class DoubleItem : Item...
> class StringItem : Item...
>
> - object systematique : je persiste dans mon affirmation. ça tiens de
> l'inconscience.
> - object a bon escient : je m'interoge. il y'a des rares cas comme
> IDataRecord, ou peut être...
>
> bon, puis c'est un peu tot pour le Troll de la rentrée. on va attendre
> Septembre :o)
>
>