En réponse aux commentaires à la question, il semble que vous avez besoin d'éclaircissements de quelques concepts:
Dans .NET, objets vivent quelque part dans le Mémoire. Une référence est un peu comme un pointeur vers un tel objet/emplacement de mémoire. Une valeur est une valeur intégrale (un nombre comme 123). Par exemple, supposons que vous avez un objet de type MyClass et que vous avez créé une nouvelle instance. Cet objet contient une chaîne. Cette chaîne est un autre objet et votre instance de MyClass contient une référence à l'objet chaîne.
Le garbage collector fonctionne uniquement sur les objets . Il garde une trace des références à un objet, si plus personne ne fait référence à l'objet, le garbage collector peut libérer cet objet. Dans notre exemple, si le garbage collector remarque qu'il n'y a personne détenant une référence à l'instance de MyClass, alors il s'assure que l'objet est libéré. Cela à son tour fait disparaître la référence à la chaîne, et le garbage collector peut alors également libérer la chaîne (si personne d'autre ne détient une référence, bien sûr). Les valeurs n'ont pas besoin d'être traitées d'une manière particulière car elles font partie de la mémoire qui appartient à un objet (et ne peuvent donc pas être libérées "indépendamment").
La même chose est vraie avec Java, BTW.
On ne sait pas exactement quelle est votre question. Demandez-vous * comment * le GC libère de la mémoire? Ou quels types de choses il est responsable de libérer? – Wyzard
je veux savoir une chose GC libérer la mémoire dans quel terme de l'objet ou de la réfrence ou de la valeur ... –
Je crains que la phrase n'a pas beaucoup de sens. Pouvez-vous s'il vous plaît essayer de le reformuler et de le décrire d'une autre manière? – DarkDust