Самая популярная архитектура для персональных компьютеров в мире

Оператор using

Оператор using используется для автоматического вызова метода Dispose интерфейса IDisposable.

Зачем нужен оператор using

Оператор Using нужен для удобства. На самом деле можно и не использовать его, а вызывать метод Dispose вручную. Но тогда нужно контролировать, чтобы в случае исключения, когда переменная пропадет из области видимости, метод Dispose все равно будет вызван. Этого можно достичь, обернув блок в try-finaly и в блоке finaly написать Dispose. Но это получится не очень понятная структура. Поэтому был введен оператор using. Используя его, можно быть увереным, что метод Dispose будет вызван в любом случае при выходе из блока для объектов, которые были созданы в using(...).

На самом деле оператора using в IL нет. Структура using преобразутся в следующий код:

		
{
  DisposableObject obj = new DisposableObject();
  try
  {
    // код в блоке
  }
  finally
  {
    if (obj != null)
      ((IDisposable)obj).Dispose();
  }
}            
		
	

DisposableObject - это пример типа, поддерживающего интерфейс IDisposable.

Copyright (c) 2014, cpubook.ru
Архитектура x86