Что делает использование (возразите obj = новый Объект ()), средний?

Что делает это средство оператора в C#?

        using (object obj = new object())
        {
            //random stuff
        }
7
задан Michael Meadows 12 January 2010 в 19:13
поделиться

5 ответов

Если вам нужно отписаться о обработчике событий, вам нужно будет иметь определенную ссылку на конкретный делегат. Глядя на делегат. Неизмещение Вы обнаружите, что делегаты не только сравниваются с использованием справедливого равенства, однако это не имеет значения для анонимных делегатов.

Для анонимного делегата компилятор (в основном) создает новый «неанонимный» делегат для каждого анонимного делегата, даже если органы делегата одинаковы. Из-за этого каркас не найдет делегата для отписания, когда вы используете пример кода, который вы дали.

-121--1019981-

Это означает, что OBJ ISJ IDSPLECSSPLECTIDIBIDIBIDICICIBID и будет должным образом утилизирован после с использованием блока . Это функционально так же, как:

{
  //Assumes SomeObject implements IDisposable
  SomeObject obj = new SomeObject();
  try
  {
    // Do more stuff here.       
  }
  finally
  { 
    if (obj != null)
    {
      ((IDisposable)obj).Dispose();
    }
  }
}
13
ответ дан 6 December 2019 в 10:00
поделиться

Просто приведите его к длинному типу

 go( (long) b);
-121--4690972-

На самом деле, данные строки можно доверять, даже когда вы манипулируете им.

Если вы начинаете транзакцию с одного соединения, другие соединения не увидят никаких изменений до тех пор, пока вы не зафиксируете транзакцию.

-121--3643210-

почему он существует tho.

Он существует для классов, в которых вы заботитесь об их жизни, в частности, когда класс переносит ресурс в ОС и вы хотите выпустить его немедленно. В противном случае потребуется дождаться завершения CLR (недетерминированного).

Примеры, дескрипторы файлов, подключения к БД, подключения к сокетам,....

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

Это способ обладать объектом, поэтому метод Dispose вызывается на выходе. Это очень полезно для соединений базы данных в частиделенке. Произошла ошибка времени компиляции, если объект не реализуется iDisposable

-121--3832539-

Использование обеспечивает правильность выделенного объекта, правильно расположенного после использования блока, даже если в блоке происходит необработанное исключение.

0
ответ дан 6 December 2019 в 10:00
поделиться
using (object obj = new object())
{
    //random stuff
}

Эквивалентно:

object obj = new object();
try 
{
    // random stuff
}
finally {
   ((IDisposable)obj).Dispose();
}
5
ответ дан 6 December 2019 в 10:00
поделиться
using (object obj = new object())
{
    //random stuff
}

эквивалентно:

object obj = new object();
try 
{
    // random stuff
}
finally {
   ((IDisposable)obj).Dispose();
}
-121--3832537-

Это способ охватить объект, поэтому метод убытка вызывается на выходе. Это очень полезно для соединений базы данных в частиделенке. Произошла ошибка времени компиляции, если объект не реализуется iDisposable

0
ответ дан 6 December 2019 в 10:00
поделиться
Другие вопросы по тегам:

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