Использование using
Все мы привыкли к использованию ключевого слова
using в начале наших файлов для упрощения обращения к типам в определённом пространстве имён. Но у него есть и другие интересные варианты использования.Директива
1. Наиболее распространённый вариант использования уже упоминался выше. Нет необходимости каждый раз писать полное имя типа с пространством имён, например:
using System.Text;2. Для упрощённого обращения к статическим методам класса можно использовать
…
var sb = new StringBuilder();
using static, например:using static System.Console;3. Использование псевдонимов (алиасов) для пространств имён или типов. Например, для упрощения использования обобщённых типов (в самой директиве, правда, все имена придётся написать полностью):
using static System.Math;
…
WriteLine(Sqrt(3*3 + 4*4));
using System;Оператор
using DateTimeList = System.Collections.Generic.List<System.DateTime>;
…
var dtl = new DateTimeList {DateTime.MinValue, DateTime.Now, DateTime.MaxValue};
Оператор using упрощает работу с объектами которые реализуют интерфейс
IDisposable. Интерфейс имеет один метод Dispose(), который используется для освобождения ресурсов, использованных объектом. При использовании using не обязательно явно вызывать Dispose() для объекта.using (SqlConnection conn = new SqlConnection()) {
…
}
При этом компилятор сгенерирует приблизительно следующий код:SqlConnection conn = new SqlConnection();
try {
…
}
finally {
if (conn != null)
((IDisposable)conn).Dispose();
}