A using
утверждение всегда лучше, потому что ...
- Вы не можете забыть позвонить
Dispose()
, даже если код эволюционирует в разные пути кода
Dispose()
вызывается, даже если есть исключение. Он также проверяет null
перед вызовом Dispose()
, что может быть полезно (при условии, что вы не просто звоните new
).
Один неочевидный (для меня, во всяком случае) трюк с using
заключается в том, как избежать чрезмерного вложения, если у вас есть несколько одноразовых предметов:
using (var input = new InputFile(inputName))
using (var output = new OutputFile(outputName))
{
input.copyTo(output);
}
Форматировщик кода VS оставит два оператора, начинающихся в одном столбце.
На самом деле, в некоторых ситуациях вам даже не нужно повторять оператор using ...
using (InputFile input1 = new InputFile(inputName1), input2 = new InputFile(inputName2))
Однако здесь применяются ограничения для объявления нескольких переменных в одной строке, поэтому типы должны быть одинаковыми, и вы не можете использовать неявный тип var .