Re[10]: using Statement и отложенная инициализация
От: amx3000 Россия  
Дата: 26.12.08 18:01
Оценка: +3
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, amx3000, Вы писали:


_FR>>>Очень может быть. Какой вариант выглядит лучше и почему:

A>>Лучше всего выглядит вариант

_FR>
A>>using (var d = smth())
A>>{
A>>    if (condition(d)) 
A>>    {
A>>        // ...
A>>    }
A>>}
_FR>

A>>Потому что все прозрачно.

_FR>Разница в том, что в моём варианте, в случае невыполнения условия condition не будет вызван Dispose()


Вообще никогда? Если ниже таки будет вызван, то просто этот код должен быть внутри using после блока if. А если все же никогда, то см. ниже.

_FR>и объект будет жить дальше. Это условие задачи.


Я бы тогда убрал using и вызывал Dispose явно внутри if.
_Лично_я_ считаю, что вне блока using объект, в нем используемый, жить не должен. У него и область видимости-то должна быть ограничена этим блоком. Тогда using четко указывает область жизнь и использования объекта. На мой взгляд, это способствует простоте и понятности кода.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.