Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Rw.Dispose ();

Создание специальных исключений, способ первый | Обработка нескольких исключений. | Блок finally | Время жизни объектов | Базовые сведения о времени жизни объектов | CIL-код, генерируемый для ключевого слова new | Роль корневых элементов приложения | Поколения объектов | Фоновая сборка мусора в версии .NET 4.0 | Public class Object |


}

}

Хотя это является замечательными примером "безопасного программирования", истина состоит в том, что очень немногих разработчиков прельщает перспектива заключать каждый очищаемый тип в блок try/finally лишь для того, чтобы гарантировать вызов метода Dispose(). Для достижения аналогичного результата, но гораздо менее громоздким образом, в С# поддерживается специальный фрагмент синтаксиса, который выглядит следующим образом:

static void Main(string [ ] args)

{

// Метод Dispose() вызывается автоматически

// при выходе за пределы области действия using.

using(MyResourceWrapper rw = new MyResourceWrapper ())

{

// Использование объекта rw

}

}

Метод Main:

static void Main(string [ ] args)

{

// Метод Dispose() вызывается автоматически

// при выходе за пределы области действия using.

using(MyResourceWrapper rw = new MyResourceWrapper())

{

// Использование объекта rw.

}

}

Если теперь просмотреть CIL -код этого метода Main() с помощью утилиты ildasm.ехе, то обнаружится, что синтаксис using в таких случаях на самом деле расширяется до логики try/finally, которая включает в себя и ожидаемый вызов Dispose():

.method private hidebysig static void Main(string [ ] args) cil managed

{

............

Try

{

} // end.try

Finally

{

..........


Дата добавления: 2015-07-25; просмотров: 46 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Описание процесса финализации| Взаимодействие со сборщиком мусора

mybiblioteka.su - 2015-2024 год. (0.005 сек.)