Работа с .NET IDisposable объектами
Я работаю в C #, и я был довольно слаб в использованииusing
блоки для объявления объектов, которые реализуютIDisposable
что вы, видимо, всегда должны делать. Тем не менее, я не вижу простой способ узнать, когда я ускользнул. Visual Studio, кажется, не указывает на это каким-либо образом (я просто что-то упустил?). Должен ли я просто проверять помощь каждый раз, когда я что-либо заявляю, и постепенно создавать энциклопедическую память, для которой существуют предметы, а какие нет? Кажется ненужным, болезненным и подверженным ошибкам.
Каквы справиться с этим?
РЕДАКТИРОВАТЬ:
Глядя на связанные вопросы боковой панели, я нашелДругой вопрос который дал понять, чтоDispose()
в любом случае должен вызываться финализатором объекта. Так что даже если вы никогда не называете это сами, это должно произойти, то есть у вас не будет утечки памяти, если вы не используетеusing
(это то, что я действительно волновался все время). Единственное предостережение в том, что сборщик мусора не знает, сколько дополнительной памяти удерживает объект как неуправляемый материал, поэтому он не будет точно представлять, сколько памяти будет освобождено при сборе объекта. Это приведет к снижению производительности сборщика мусора.
Короче говоря, это не конец света, если я скучаю поusing
, Я просто хотел бы, чтобы что-то сгенерировало хотя бы предупреждение за это.
(Не по теме: почему нет специальной уценки для ссылки на другой вопрос?)
РЕДАКТИРОВАТЬ:
Хорошо, хорошо, прекрати требовать. Это супер пупердраматический-бурундук-уровеньважный звонитьDispose()
или мы всеумереть.
Сейчас. Учитывая это, почему это так легко - черт, почему это дажепозволил - сделать это неправильно? Вы должны изо всех сил, чтобы сделать это правильно. Выполнение этого как все остальное приводит к Армагеддону (очевидно). Так много для инкапсуляции, а?
[Уходит, с отвращением]