Различие между 'использованием' и обзором?

С Настройками:

Попытка схема клавиатуры Emacs на опциях Environment.

Плагины:

я только видел этого: VisEmacs, это интегрирует Emacs как текстовый редактор по умолчанию для Visual Studio.

7
задан Kelsey 30 October 2009 в 16:41
поделиться

5 ответов

Первый сниппет вызывает Dispose в конце блока - вы можете делать это только с типами, которые реализуют IDisposable , и в основном он вызывает Удалите в блоке finally, чтобы вы могли использовать его с типами, которые нуждаются в очистке ресурсов, например

using (TextReader reader = File.OpenText("test.txt"))
{
    // Use reader to read the file
}
// reader will be disposed, so file handle released

. Обратите внимание, что это не заставляет сборку мусора каким-либо образом, формой или формой. Сборка мусора и очистка ресурсов подсказки в некоторой степени ортогональны.

В принципе, вы должны использовать оператор using практически для всего, что реализует IDisposable и который будет использоваться вашим блоком кода. взять на себя ответственность (в плане очистки).

20
ответ дан 6 December 2019 в 06:37
поделиться

В конце использования объект удаляется (объект, который вы помещаете в круглые скобки, должен реализовывать IDisposable). Объект удаляется также в исключительных случаях. И вам не нужно ждать, пока сборщик мусора сделает это в какое-то время (вы контролируете это).

РЕДАКТИРОВАТЬ: Недостатком области видимости является:

  • вы не контролируете расположение объекта
  • даже если вы вызовете метод dispose в конце своей области видимости, это будет небезопасно для исключений
3
ответ дан 6 December 2019 в 06:37
поделиться

См. документацию по IDisposable и определяемому освобождению ресурсов.

Проще говоря, в конце блока using {} вы можете надежно удалить выделенные ресурсы (например, закрыть дескрипторы файлов, соединения с базой данных и т. Д.)

1
ответ дан 6 December 2019 в 06:37
поделиться

с использованием просто требует реализации интерфейса IDisposable и вызывает метод Dispose в конце области.

Для множества яростных споров о правильном размещении предметов существует множество других тем.

0
ответ дан 6 December 2019 в 06:37
поделиться

Просто чтобы буквально показать разницу ...

using (FileStream fileStream = new FileStream("log.txt", FileMode.OpenCreate))
{
  //stuff with file stream
}

то же самое, что ...

{
  FileStream fileStream = new FileStream("log.txt", FileMode.OpenCreate);

  try
  {
    //stuff with filestream
  }
  finally
  {
    if (fileStream != null)
      ((IDisposable)fileStream).Dispose();
  }
}

где as

{
  FileStream fileStream = new FileStream("log.txt", FileMode.OpenCreate);
  fileStream.Dispose();
}

как есть.

3
ответ дан 6 December 2019 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: