Question

Si je mets en œuvre un objet avec IDisposable, si tous les objets qui possèdent cet objet la mise en œuvre aussi bien, même si elle n'a pas d'autres ressources pour libérer?

Était-ce utile?

La solution

Oui. Vous devez disposer, afin d'avoir vos variables membres se correctement disposées.

Chaque fois que vous encapsulez une classe IDisposable, vous devez faire votre IDisposable de classe. Dans votre méthode Dispose, vous devez disposer de vos ressources encapsulées. En fait, les traiter de la même façon que vous traiteriez une ressource native.

Autres conseils

Si vous voulez l'élimination déterministe, en fin de compte un certain client a besoin d'appeler Dispose ou envelopper les appels dans un bloc « à l'aide ». Pour trickle down à votre objet, qui pourrait exiger que le propriétaire de mettre en œuvre IDisposable ainsi.

Vous ne devez pas compter sur le collecteur des ordures pour libérer des ressources en fonction du temps.

Oui, une classe possédante devrait mettre en œuvre IDisposable mais il n'a pas besoin (ne devrait pas avoir) un Finalizer (destructor).

np, ils ont juste besoin d'utiliser cette classe avec un « en utilisant » déclaration pour vous assurer qu'ils disposent cet objet correctement, mais ces objets eux-mêmes ne doivent pas mettre en œuvre IDisposable

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top