Lidando com objetos .NET IDisposable

Eu trabalho em c # e tenho sido bastante relaxado ao usarusing blocos para declarar objetos que implementamIDisposable, o que aparentemente você sempre deve fazer. No entanto, não vejo uma maneira fácil de saber quando estou escorregando. O Visual Studio parece não indicar isso de maneira alguma (estou perdendo alguma coisa?). Devo verificar a ajuda toda vez que declaro algo e gradualmente criar uma memória enciclopédica para quais objetos são e quais não são descartáveis? Parece desnecessário, doloroso e propenso a erros.

Comovocê lidar com isso?

EDITAR:

Olhando para as perguntas relacionadas na barra lateral, descobrioutra pergunta o que deixou claro queDispose() deve ser chamado pelo finalizador do objeto de qualquer maneira. Portanto, mesmo que você nunca chame a si mesmo, isso eventualmente acontecerá, o que significa que você não terá um vazamento de memória se não usarusing (e é com isso que suponho estar realmente preocupado o tempo todo). A única ressalva é que o coletor de lixo não sabe quanta memória extra está sendo mantida pelo objeto como material não gerenciado, portanto, não terá uma idéia precisa da quantidade de memória liberada ao coletar o objeto. Isso resultará em um desempenho menos ideal do que o normal pelo coletor de lixo.

Em suma, não é o fim do mundo se eu perder umusing. Eu só queria que algo gere pelo menos um aviso para isso.

(Fora do tópico: por que não existe uma remarcação especial para vincular a outra pergunta?)

EDITAR:

Ok, tudo bem, pare de clamar. É super duper demitidoesquilo-dramático-nívelimportante chamarDispose() ou todos nósmorrer.

Agora. Dado isso, por que é tão fácil - inferno, por que é mesmopermitido - fazer errado? Você precisa se esforçar para fazer o que é certo. Fazer isso como todo o resto resulta em armageddon (aparentemente). Tanta coisa para encapsulamento, hein?

[Sai fora, enojado]

questionAnswers(12)

yourAnswerToTheQuestion