Оператор using
является синтаксическим сахаром, который вызывает Dispose
для объектов, инициализированных в ()
, поэтому вы не можете просто заменить его, как в своем примере.
Вы заметитечто в операторе using
можно использовать только те объекты, которые реализуют IDisposable
, что обеспечивает возможность вызова Dispose
.
Как в этой статье объясняется,компилятор преобразует это:
using (MyResource myRes = new MyResource())
{
myRes.DoSomething();
}
В это:
MyResource myRes= new MyResource();
try
{
myRes.DoSomething();
}
finally
{
if (myRes!= null)
((IDisposable)myRes).Dispose();
}
Итак, если вы не продублируете эту структуру, вы не получите такое же поведение.
ВКроме того, повторное использование переменной, как в вашем примере, является плохой практикой.Кто-то, кто читает код, может подумать, что он смотрит на соединение 1, когда на самом деле смотрит на 2 или 3. Это может привести к путанице и вызвать всевозможные проблемы в будущем.