Первый фрагмент вызывает Dispose
в конце блока - вы можете делать это только с типами, которые реализуют IDisposable
, и он в основном вызывает Dispose
в блоке finally, поэтому вы можете использовать его с типами, которые требуется очистка ресурсов, например
using (TextReader reader = File.OpenText("test.txt"))
{
// Use reader to read the file
}
// reader will be disposed, so file handle released
Обратите внимание, что это не вызывает сборку мусора любым способом, в любой форме. Сборка мусора и быстрая очистка ресурсов несколько ортогональны.
По сути, вы должны использовать оператор using
почти для всего, что реализует IDisposable
и за что ваш блок кода будет нести ответственность (с точки зрения очистки).