Re[11]: using Statement и отложенная инициализация
От: _FRED_ Черногория
Дата: 27.12.08 09:55
Оценка:
Здравствуйте, 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.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.