Здравствуйте, _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 четко указывает область жизнь и использования объекта. На мой взгляд, это способствует простоте и понятности кода.