- J'ai un objet A de classe ClasseA.
- J'ai une collection Col qui contient A. (A ne "conna=EEt"=20
pas la collection Col)
- Je d=E9truit A par la commande : A =3D null.
=3D> L'objet A est toujours dans la collection (mais je ne=20
voudrais pas)
Connaissez-vous une mani=E8re =E9l=E9gante de r=E9soudre ce=20
probl=E8me ?
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
Sylvain Lafontaine
Vous ne détruisez pas un objet A en lui applicant la valeur nulle, vous ne faites que retirez une des références pointant sur l'objet A. Lorsqu'il n'y a plus de référence pointant vers un objet; ce dernier est marqué et sera « collecté » (ou détruit) à un moment ultérieur, lors du prochain passage du Garbage Collector.
Dans votre cas, vous devez également demander à la collection Col de retirer sa référence vers cet objet A.
S. L.
"ThierryL" wrote in message news:1f1e01c4dc7c$be0ff9f0$ Bonjour à tous,
Voici mon problème :
- J'ai un objet A de classe ClasseA. - J'ai une collection Col qui contient A. (A ne "connaît" pas la collection Col) - Je détruit A par la commande : A = null.
=> L'objet A est toujours dans la collection (mais je ne voudrais pas)
Connaissez-vous une manière élégante de résoudre ce problème ?
D'avance merci.
Thierry
Vous ne détruisez pas un objet A en lui applicant la valeur nulle, vous ne
faites que retirez une des références pointant sur l'objet A. Lorsqu'il n'y
a plus de référence pointant vers un objet; ce dernier est marqué et sera
« collecté » (ou détruit) à un moment ultérieur, lors du prochain passage du
Garbage Collector.
Dans votre cas, vous devez également demander à la collection Col de retirer
sa référence vers cet objet A.
S. L.
"ThierryL" <anonymous@discussions.microsoft.com> wrote in message
news:1f1e01c4dc7c$be0ff9f0$a401280a@phx.gbl...
Bonjour à tous,
Voici mon problème :
- J'ai un objet A de classe ClasseA.
- J'ai une collection Col qui contient A. (A ne "connaît"
pas la collection Col)
- Je détruit A par la commande : A = null.
=> L'objet A est toujours dans la collection (mais je ne
voudrais pas)
Connaissez-vous une manière élégante de résoudre ce
problème ?
Vous ne détruisez pas un objet A en lui applicant la valeur nulle, vous ne faites que retirez une des références pointant sur l'objet A. Lorsqu'il n'y a plus de référence pointant vers un objet; ce dernier est marqué et sera « collecté » (ou détruit) à un moment ultérieur, lors du prochain passage du Garbage Collector.
Dans votre cas, vous devez également demander à la collection Col de retirer sa référence vers cet objet A.
S. L.
"ThierryL" wrote in message news:1f1e01c4dc7c$be0ff9f0$ Bonjour à tous,
Voici mon problème :
- J'ai un objet A de classe ClasseA. - J'ai une collection Col qui contient A. (A ne "connaît" pas la collection Col) - Je détruit A par la commande : A = null.
=> L'objet A est toujours dans la collection (mais je ne voudrais pas)
Connaissez-vous une manière élégante de résoudre ce problème ?
D'avance merci.
Thierry
Ambassadeur Kosh
j'apporterais une idée par rapport à la réponse de sylvain.
pourquoi ne pas simplement fourguer à l'objet une liste de choses à faire par le biais d'un event ? ainsi, lorsque la liste recoit l'objet lors d'un Add, elle abonne l'objet à cet evenement qui fera en sorte de le retirer de celle ci lorsque l'utilisateur invoquera une methode Release.
destruction, ça n'existe pas (on va dire ça comme ça) je pense que le Dispose n'est pas une bonne idée. et je me demande si tout ceci n'est pas tout simplement un bad plan...
j'apporterais une idée par rapport à la réponse de sylvain.
pourquoi ne pas simplement fourguer à l'objet une liste de choses à faire
par le biais d'un event ?
ainsi, lorsque la liste recoit l'objet lors d'un Add, elle abonne l'objet à
cet evenement qui fera en sorte de le retirer de celle ci lorsque
l'utilisateur invoquera une methode Release.
destruction, ça n'existe pas (on va dire ça comme ça)
je pense que le Dispose n'est pas une bonne idée.
et je me demande si tout ceci n'est pas tout simplement un bad plan...
j'apporterais une idée par rapport à la réponse de sylvain.
pourquoi ne pas simplement fourguer à l'objet une liste de choses à faire par le biais d'un event ? ainsi, lorsque la liste recoit l'objet lors d'un Add, elle abonne l'objet à cet evenement qui fera en sorte de le retirer de celle ci lorsque l'utilisateur invoquera une methode Release.
destruction, ça n'existe pas (on va dire ça comme ça) je pense que le Dispose n'est pas une bonne idée. et je me demande si tout ceci n'est pas tout simplement un bad plan...