comme je switch souvent de langage, des fois je me pose des questions=20
existencielles...
C# utilise le passage de param=E8tres par valeur et il faut explicitement=
=20
sp=E9cifier l'un des mots clef 'ref' ou 'out' pour un passage de param=E8tr=
es par=20
r=E9f=E9rence.
Du coup, quand on prom=E8ne un noeud xml ou un tableau ou une grosse cha=EE=
ne =E0=20
travers plusieures m=E9thodes, pour optimiser la vitesse et la m=E9moire il=
faut=20
utiliser le passage de param=E8tre par r=E9f=E9rence donc le mot clef 'ref'=
. Ca =E9vite=20
qu'une copie de l'objet soit r=E9alis=E9e =E0 chaque empilement.
est-ce que j'ais bon ?
Si oui, comment fait C# pour copier un objet si celui-ci ne poss=E8de pas d=
e=20
m=E9thode Clone() ? Et souvent s'il la poss=E8de, elle effectue une copie=
=20
partielle.
Comme vous le voyez, je suis un peu embrouill=E9 ;-)
Merci donc pour vos lumi=E8res rafra=EEchissantes !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ambassadeur Kosh
> est-ce que j'ais bon ?
ben non, puisque qu'un XmlNode est une class, et qu'un Array aussi
Si oui, comment fait C# pour copier un objet si celui-ci ne possède pas de méthode Clone() ? Et souvent s'il la possède, elle effectue une copie partielle
un cas concret, la comme ça, c'est pas hyper clair.
> est-ce que j'ais bon ?
ben non, puisque qu'un XmlNode est une class, et qu'un Array aussi
Si oui, comment fait C# pour copier un objet si celui-ci ne possède pas de
méthode Clone() ? Et souvent s'il la possède, elle effectue une copie
partielle
un cas concret, la comme ça, c'est pas hyper clair.
ben non, puisque qu'un XmlNode est une class, et qu'un Array aussi
Si oui, comment fait C# pour copier un objet si celui-ci ne possède pas de méthode Clone() ? Et souvent s'il la possède, elle effectue une copie partielle
un cas concret, la comme ça, c'est pas hyper clair.
Zazar
Bonsoir,
C# utilise le passage de paramètres par valeur et il faut explicitement spécifier l'un des mots clef 'ref' ou 'out' pour un passage de paramètres
par
référence.
Du coup, quand on promène un noeud xml ou un tableau ou une grosse chaîne
à
travers plusieures méthodes, pour optimiser la vitesse et la mémoire il
faut
utiliser le passage de paramètre par référence donc le mot clef 'ref'. Ca
évite
qu'une copie de l'objet soit réalisée à chaque empilement.
est-ce que j'ais bon ?
Oui et non. En .NET, il y a deux types d'objets : les objets de type valeurs et les objets de type référence. Les premiers contiennent par exemple le type int, les structures, ... ; les deuxièmes : les string, ou les XmlNodes. Dans le cas d'un passage par valeur d'un type référence, c'est la valeur de la référence que vous passez, pas l'objet lui-même. Il n'y a donc pas de copie et vous pouvez passer par valeur des chaînes aussi grosses que vous le désirer. Dans le cas d'un passage par valeur d'un type valeur, l'objet est effectivement copié.
Si oui, comment fait C# pour copier un objet si celui-ci ne possède pas de méthode Clone() ? Et souvent s'il la possède, elle effectue une copie partielle.
Dans le cas d'un passage par valeur d'un type valeur, c'est une copie partielle qui est faîte Pour les types numériques ou les enumérations, ça ne pose aucun problème. Pour les structures, effectivement si un des membres est de type référence alors il n'est pas cloné. Effectivement en théorie il doit y avoir des cas où ça peut poser probléme, mais dans la pratique ça doit pas arriver tous les jours. Sinon, ce n'est pas parce qu'un objet ne possède pas de méthode Clone que le clr ne saurait pas le cloner. Il n'est pas obligé de se limiter à appeler les méthodes fournies par l'objet, il a toutes les informations qu'il lui faut pour le faire.
-- Zazar
Bonsoir,
C# utilise le passage de paramètres par valeur et il faut explicitement
spécifier l'un des mots clef 'ref' ou 'out' pour un passage de paramètres
par
référence.
Du coup, quand on promène un noeud xml ou un tableau ou une grosse chaîne
à
travers plusieures méthodes, pour optimiser la vitesse et la mémoire il
faut
utiliser le passage de paramètre par référence donc le mot clef 'ref'. Ca
évite
qu'une copie de l'objet soit réalisée à chaque empilement.
est-ce que j'ais bon ?
Oui et non. En .NET, il y a deux types d'objets : les objets de type valeurs
et les objets de type référence.
Les premiers contiennent par exemple le type int, les structures, ... ; les
deuxièmes : les string, ou les XmlNodes.
Dans le cas d'un passage par valeur d'un type référence, c'est la valeur de
la référence que vous passez, pas l'objet lui-même. Il n'y a donc pas de
copie et vous pouvez passer par valeur des chaînes aussi grosses que vous le
désirer.
Dans le cas d'un passage par valeur d'un type valeur, l'objet est
effectivement copié.
Si oui, comment fait C# pour copier un objet si celui-ci ne possède pas de
méthode Clone() ? Et souvent s'il la possède, elle effectue une copie
partielle.
Dans le cas d'un passage par valeur d'un type valeur, c'est une copie
partielle qui est faîte Pour les types numériques ou les enumérations, ça ne
pose aucun problème. Pour les structures, effectivement si un des membres
est de type référence alors il n'est pas cloné. Effectivement en théorie il
doit y avoir des cas où ça peut poser probléme, mais dans la pratique ça
doit pas arriver tous les jours.
Sinon, ce n'est pas parce qu'un objet ne possède pas de méthode Clone que le
clr ne saurait pas le cloner. Il n'est pas obligé de se limiter à appeler
les méthodes fournies par l'objet, il a toutes les informations qu'il lui
faut pour le faire.
C# utilise le passage de paramètres par valeur et il faut explicitement spécifier l'un des mots clef 'ref' ou 'out' pour un passage de paramètres
par
référence.
Du coup, quand on promène un noeud xml ou un tableau ou une grosse chaîne
à
travers plusieures méthodes, pour optimiser la vitesse et la mémoire il
faut
utiliser le passage de paramètre par référence donc le mot clef 'ref'. Ca
évite
qu'une copie de l'objet soit réalisée à chaque empilement.
est-ce que j'ais bon ?
Oui et non. En .NET, il y a deux types d'objets : les objets de type valeurs et les objets de type référence. Les premiers contiennent par exemple le type int, les structures, ... ; les deuxièmes : les string, ou les XmlNodes. Dans le cas d'un passage par valeur d'un type référence, c'est la valeur de la référence que vous passez, pas l'objet lui-même. Il n'y a donc pas de copie et vous pouvez passer par valeur des chaînes aussi grosses que vous le désirer. Dans le cas d'un passage par valeur d'un type valeur, l'objet est effectivement copié.
Si oui, comment fait C# pour copier un objet si celui-ci ne possède pas de méthode Clone() ? Et souvent s'il la possède, elle effectue une copie partielle.
Dans le cas d'un passage par valeur d'un type valeur, c'est une copie partielle qui est faîte Pour les types numériques ou les enumérations, ça ne pose aucun problème. Pour les structures, effectivement si un des membres est de type référence alors il n'est pas cloné. Effectivement en théorie il doit y avoir des cas où ça peut poser probléme, mais dans la pratique ça doit pas arriver tous les jours. Sinon, ce n'est pas parce qu'un objet ne possède pas de méthode Clone que le clr ne saurait pas le cloner. Il n'est pas obligé de se limiter à appeler les méthodes fournies par l'objet, il a toutes les informations qu'il lui faut pour le faire.
-- Zazar
Mitsuru FURUTA [Ms]
Tout à fait,
Le seul intérêt à passer un objet de type référence avec le mot clé "ref" est de modifier la référence elle-même en voulant que l'appelant soit également modifié.
Mitsuru FURUTA [Microsoft FRANCE]
"Zazar" wrote in message news:eT#WoT#
Bonsoir,
> C# utilise le passage de paramètres par valeur et il faut explicitement > spécifier l'un des mots clef 'ref' ou 'out' pour un passage de
paramètres
par > référence. > > Du coup, quand on promène un noeud xml ou un tableau ou une grosse
chaîne
à > travers plusieures méthodes, pour optimiser la vitesse et la mémoire il faut > utiliser le passage de paramètre par référence donc le mot clef 'ref'.
Ca
évite > qu'une copie de l'objet soit réalisée à chaque empilement. > > est-ce que j'ais bon ? Oui et non. En .NET, il y a deux types d'objets : les objets de type
valeurs
et les objets de type référence. Les premiers contiennent par exemple le type int, les structures, ... ;
les
deuxièmes : les string, ou les XmlNodes. Dans le cas d'un passage par valeur d'un type référence, c'est la valeur
de
la référence que vous passez, pas l'objet lui-même. Il n'y a donc pas de copie et vous pouvez passer par valeur des chaînes aussi grosses que vous
le
désirer. Dans le cas d'un passage par valeur d'un type valeur, l'objet est effectivement copié.
> Si oui, comment fait C# pour copier un objet si celui-ci ne possède pas
de
> méthode Clone() ? Et souvent s'il la possède, elle effectue une copie > partielle. Dans le cas d'un passage par valeur d'un type valeur, c'est une copie partielle qui est faîte Pour les types numériques ou les enumérations, ça
ne
pose aucun problème. Pour les structures, effectivement si un des membres est de type référence alors il n'est pas cloné. Effectivement en théorie
il
doit y avoir des cas où ça peut poser probléme, mais dans la pratique ça doit pas arriver tous les jours. Sinon, ce n'est pas parce qu'un objet ne possède pas de méthode Clone que
le
clr ne saurait pas le cloner. Il n'est pas obligé de se limiter à appeler les méthodes fournies par l'objet, il a toutes les informations qu'il lui faut pour le faire.
-- Zazar
Tout à fait,
Le seul intérêt à passer un objet de type référence avec le mot clé "ref"
est de modifier la référence elle-même en voulant que l'appelant soit
également modifié.
Mitsuru FURUTA [Microsoft FRANCE]
"Zazar" <DILAVNI.nicolas.prats@iie.cnam.fr.INVALID> wrote in message
news:eT#WoT#0EHA.304@TK2MSFTNGP11.phx.gbl...
Bonsoir,
> C# utilise le passage de paramètres par valeur et il faut explicitement
> spécifier l'un des mots clef 'ref' ou 'out' pour un passage de
paramètres
par
> référence.
>
> Du coup, quand on promène un noeud xml ou un tableau ou une grosse
chaîne
à
> travers plusieures méthodes, pour optimiser la vitesse et la mémoire il
faut
> utiliser le passage de paramètre par référence donc le mot clef 'ref'.
Ca
évite
> qu'une copie de l'objet soit réalisée à chaque empilement.
>
> est-ce que j'ais bon ?
Oui et non. En .NET, il y a deux types d'objets : les objets de type
valeurs
et les objets de type référence.
Les premiers contiennent par exemple le type int, les structures, ... ;
les
deuxièmes : les string, ou les XmlNodes.
Dans le cas d'un passage par valeur d'un type référence, c'est la valeur
de
la référence que vous passez, pas l'objet lui-même. Il n'y a donc pas de
copie et vous pouvez passer par valeur des chaînes aussi grosses que vous
le
désirer.
Dans le cas d'un passage par valeur d'un type valeur, l'objet est
effectivement copié.
> Si oui, comment fait C# pour copier un objet si celui-ci ne possède pas
de
> méthode Clone() ? Et souvent s'il la possède, elle effectue une copie
> partielle.
Dans le cas d'un passage par valeur d'un type valeur, c'est une copie
partielle qui est faîte Pour les types numériques ou les enumérations, ça
ne
pose aucun problème. Pour les structures, effectivement si un des membres
est de type référence alors il n'est pas cloné. Effectivement en théorie
il
doit y avoir des cas où ça peut poser probléme, mais dans la pratique ça
doit pas arriver tous les jours.
Sinon, ce n'est pas parce qu'un objet ne possède pas de méthode Clone que
le
clr ne saurait pas le cloner. Il n'est pas obligé de se limiter à appeler
les méthodes fournies par l'objet, il a toutes les informations qu'il lui
faut pour le faire.
Le seul intérêt à passer un objet de type référence avec le mot clé "ref" est de modifier la référence elle-même en voulant que l'appelant soit également modifié.
Mitsuru FURUTA [Microsoft FRANCE]
"Zazar" wrote in message news:eT#WoT#
Bonsoir,
> C# utilise le passage de paramètres par valeur et il faut explicitement > spécifier l'un des mots clef 'ref' ou 'out' pour un passage de
paramètres
par > référence. > > Du coup, quand on promène un noeud xml ou un tableau ou une grosse
chaîne
à > travers plusieures méthodes, pour optimiser la vitesse et la mémoire il faut > utiliser le passage de paramètre par référence donc le mot clef 'ref'.
Ca
évite > qu'une copie de l'objet soit réalisée à chaque empilement. > > est-ce que j'ais bon ? Oui et non. En .NET, il y a deux types d'objets : les objets de type
valeurs
et les objets de type référence. Les premiers contiennent par exemple le type int, les structures, ... ;
les
deuxièmes : les string, ou les XmlNodes. Dans le cas d'un passage par valeur d'un type référence, c'est la valeur
de
la référence que vous passez, pas l'objet lui-même. Il n'y a donc pas de copie et vous pouvez passer par valeur des chaînes aussi grosses que vous
le
désirer. Dans le cas d'un passage par valeur d'un type valeur, l'objet est effectivement copié.
> Si oui, comment fait C# pour copier un objet si celui-ci ne possède pas
de
> méthode Clone() ? Et souvent s'il la possède, elle effectue une copie > partielle. Dans le cas d'un passage par valeur d'un type valeur, c'est une copie partielle qui est faîte Pour les types numériques ou les enumérations, ça
ne
pose aucun problème. Pour les structures, effectivement si un des membres est de type référence alors il n'est pas cloné. Effectivement en théorie
il
doit y avoir des cas où ça peut poser probléme, mais dans la pratique ça doit pas arriver tous les jours. Sinon, ce n'est pas parce qu'un objet ne possède pas de méthode Clone que
le
clr ne saurait pas le cloner. Il n'est pas obligé de se limiter à appeler les méthodes fournies par l'objet, il a toutes les informations qu'il lui faut pour le faire.