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