Pergunta

Se eu implementar um objeto com IDisposable, devem todos os objetos que o próprio objeto de implementá-lo bem, mesmo se eles não têm outros recursos a liberar?

Foi útil?

Solução

Sim.Você precisa eliminá-los, a fim de ter suas variáveis de membro de obter descartados corretamente.

A qualquer momento você encapsular um IDisposable classe, você deve fazer a sua classe IDisposable.Em seu método Dispose, você deve alienar o seu encapsulado recursos.Basicamente, tratá-los da mesma maneira que você gostaria de tratar de um recurso nativo.

Outras dicas

Se você deseja o descarte determinístico, em última análise, algum cliente precisa ligar para dispitar ou envolver as chamadas em um bloco "usando". Para chegar ao seu objeto, isso pode exigir que o proprietário também implemente o idispo.

Você não deve confiar no coletor de lixo para libertar quaisquer recursos dependentes do tempo.

Sim, uma aula de propriedade deve implementar o IDisposable, mas não precisa (não deve ter) um finalizador (destruidor).

Não, eles só precisam usar essa classe com uma declaração "usando" para garantir que eles descartem esse objeto corretamente, mas esses objetos em si não precisam implementar o Idisplosable

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top