что делает оператор using в C#?


#1

Понятное дело если пишется using System:, то это подключение пространства имён System, но это не то что меня интересует. Меня интересует, что делает using в следующем контексте:

 // некий программный код

 using (MyClass a = new MyClass())
 {
      // некий программный код
 }

 // некий программный код

#2

Оператор using в данном контексте используется для создания блока кода в созданные новые объекты обязательно должны реализовать метод Dispose интерфейса IDisposable (соответственно тип новых объектов должен реализовывать интерфейс IDisposable).В конце после выполнения тела блока using методы Dispose данных объектов 100% будут вызваны (это произойдёт неявно).

Зачастую using в таком контексте воспринимаю, как try-finaly: тело блока помещено в try, а вызовы методов Dispose - в блок finaly.