гдеobjявляется выражением, в результате вычисления которого должен быть получен объект, реализующий интерфейсSystem. IDisposable.Этот объект определяет переменную, которая будет использоваться в блоке оператораusing.В первой форме объект объявляется вне оператораusing,а во второй форме — в этом операторе. По завершении блока оператораusingдля объектаobjвызывается методDispose (),определенный в интерфейсеSystem. IDisposable.Таким образом, операторusingпредоставляет средства, необходимые для автоматической утилизации объектов, когда они больше не нужны. Не следует, однако, забывать, что операторusingприменяется только к объектам, реализующим йнтерфейсSystem. IDisposable.

В приведенном ниже примере демонстрируются обе формы оператора using.

// Продемонстрировать применение оператора using.

using System; using System.10;

class UsingDemo {

static void Main() { try {

StreamReader sr = new StreamReader("test.txt") ;

// Использовать объект в операторе using, using(sr) {

// ...

}

} catch(IOException exc) {

// ...

}

try {

// Создать объект класса StreamReader в операторе using, using(StreamReader sr2 = new StreamReader("test.txt"))    {

// ...

}

} catch(IOException exc) {

// ...

В данном примере интерфейсI Disposableреализуется в классеStreamReader(посредством его базового классаTextReader).Поэтому он может использоваться в оператореusing.По завершении этого оператора автоматически вызывается методDispose() для переменной потока, закрывая тем самым поток.

Как следует из приведенного выше примера, операторusingособенно полезен для работы с файлами, поскольку файл автоматически закрывается по завершении блока этого оператора, даже если он и завершается исключением. Таким образом, закрытие файла с помощью оператораusingзачастую упрощает код обработки файлов. Разумеется, применение оператораusingне ограничивается только работой с файлами. В среде .NET Framework имеется немало других ресурсов, реализующих интерфейсI Disposable.И всеми этими ресурсами можно управлять с помощью оператораusing.

Ключевое слово extern

Ключевое словоexternнаходит два основных применения. Каждое из них рассматривается далее по порядку.

Объявление внешних методов

В первом своем применении ключевое словоexternбыло доступно с момента создания С#. Оно обозначает, что метод предоставляется в неуправляемом коде, который не является составной частью программы. Иными словами, метод предоставляется внешним кодом.

Перейти на страницу:

Похожие книги