Понятное дело если пишется using System:, то это подключение пространства имён System, но это не то что меня интересует. Меня интересует, что делает using в следующем контексте:
// некий программный код
using (MyClass a = new MyClass())
{
// некий программный код
}
// некий программный код
Оператор using в данном контексте используется для создания блока кода в созданные новые объекты обязательно должны реализовать метод Dispose интерфейса IDisposable (соответственно тип новых объектов должен реализовывать интерфейс IDisposable).В конце после выполнения тела блока using методы Dispose данных объектов 100% будут вызваны (это произойдёт неявно).
Зачастую using в таком контексте воспринимаю, как try-finaly: тело блока помещено в try, а вызовы методов Dispose - в блок finaly.