Manejo de objetos desechables .NET ID

Trabajo en C #, y he sido bastante laxo sobre el usousing bloques para declarar objetos que implementanIDisposable, que aparentemente siempre se supone que debes hacer. Sin embargo, no veo una manera fácil de saber cuándo me estoy deslizando. Visual Studio no parece indicar esto de ninguna manera (¿me estoy perdiendo algo?). ¿Se supone que debo buscar ayuda cada vez que declaro algo y construir gradualmente una memoria enciclopédica para qué objetos son y cuáles no son desechables? Parece innecesario, doloroso y propenso a errores.

Como hacertú ¿maneja esto?

EDITAR:

Mirando la barra lateral de preguntas relacionadas, encontréotra pregunta lo que dejó en claro queDispose() se supone que debe ser llamado por el finalizador del objeto de todos modos. Entonces, incluso si nunca lo llama usted mismo, eventualmente debería suceder, lo que significa que no tendrá una pérdida de memoria si no usausing (que es lo que supongo que siempre me preocupó). La única advertencia es que el recolector de basura no sabe cuánta memoria adicional tiene el objeto como material no administrado, por lo que no tendrá una idea precisa de cuánta memoria se liberará al recolectar el objeto. Esto dará como resultado un rendimiento menos ideal de lo habitual por parte del recolector de basura.

En resumen, no es el fin del mundo si echo de menos unusing. Solo deseo que algo genere al menos una advertencia para ello.

(Fuera de tema: ¿por qué no hay un descuento especial para vincular a otra pregunta?)

EDITAR:

Ok, bien, deja de clamar. Es super duper todo disparadoardilla listada-nivelimportante llamarDispose() o todosmorir.

Ahora. Dado eso, ¿por qué es tan fácil? Demonios, ¿por qué es inclusopermitido - para hacerlo mal? Tienes que salir de tu camino para hacerlo bien. Hacerlo como todo lo demás resulta en armageddon (aparentemente). Demasiado para encapsular, ¿eh?

[Acecha, disgustado]

Respuestas a la pregunta(12)

Su respuesta a la pregunta