Здравствуйте, amx3000, Вы писали:
_FR>>и объект будет жить дальше. Это условие задачи.
A>Я бы тогда убрал using и вызывал Dispose явно внутри if.
Если вызывать явно, то нужно самому оборачивать в try\finally, чего не хочется.
A>_Лично_я_ считаю, что вне блока using объект, в нем используемый, жить не должен. У него и область видимости-то должна быть ограничена этим блоком. Тогда using четко указывает область жизнь и использования объекта. На мой взгляд, это способствует простоте и понятности кода.
Это подходит только для локальных переменных (и то не всех), но не подходит для полей класса или параметров методов.
В качестве примера такой задачи предлагаю написать функцию, которой передаётся путь к файлу, а вернуть она должна стрим к этому файлу (не закрытый, естественно), но только если первые байты в файле 0x11111111. Если файла нет, или прервые байты в нём не такие, то вернуть следует Stream.Null.
Help will always be given at Hogwarts to those who ask for it.