Например:
using (disposable object here) { }
Что определяет, могу ли я использовать объект таким образом?
Будет ли это работать правильно?
using (WebClient webClient = new WebClient()) { }
Для использования в операторе с использованием класс должен реализовать интерфейс IDisposable .
В вашем примере WebClient происходит от Компонента , который реализует IDisposable, поэтому он действительно будет работать.
IDisposable
Объект, представленный в операторе using, должен реализовывать интерфейс IDisposable.
Этот интерфейс предоставляет метод Dispose, который должен высвобождать ресурсы объекта.
Ссылка: http://msdn.microsoft.com/en-us/library/yh598w02(v=vs.80).aspx
Вы можете использовать его, если класс реализует интерфейс IDisposable .Это ключевое слово - просто синтаксический сахар для автоматического вызова метода объекта IDisposable.Dispose() после блока using.
IDisposable.Dispose()
using
Метод Dispose():
Dispose()
Выполняет определенные пользователем задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов.
Работает, если объект реализует IDisposable.
WebClient наследуется от Component, который реализует IDisposable, поэтому ваш код должен работать.
WebClient
Component
Если это не сработало, вы должны получить ошибку во время компиляции.