Исходя из C / C ++ давным-давно, у меня все еще есть привычка следить за тем, чтобы все ресурсы были очищены правильно. Я всегда гарантирую, что Dispose вызывается для классов IDisposable, и внедряю шаблоны Dispose в мои классы, содержащие одноразовые объекты.
Однако в моем окружении я более или менее единственный, кто делает это. Другие просто не понимают, что я делаю, и думают, что мой код сложнее понять.
Они просто создают соединения с базой данных, открывают потоки и т. Д., Не вызывая Close или Dispose. Иногда они устанавливают для локальной переменной или переменной-члена значение «Ничего» в конце метода (угадайте их фон).
Моя проблема в том, что их код работает так же хорошо, как и мой. Код, который со временем создает тысячи объектов подключения к базе данных, просто работает.
Итак, игнорируя любые аргументы о корректности кода, следуя рекомендациям и т. Д., действительно ли значение IDiposable ?
Кто-нибудь на самом деле исчерпал ресурсы из-за того, что не выбрасывал объекты?
Edit:
Спасибо за все ответы. Интересно видеть, что у некоторых людей были проблемы, когда они не выбрасывали. Хотя это кажется редким явлением, и я предполагаю, что GC / JIT хорошо справляется с поддержанием использования ресурсов в нормальных условиях.
Из-за этого ни мои коллеги, ни я не изменю своего поведения, но приятно быть правым.