Подтвердить что ты не робот

Как написать несколько инструкций?

Возможный дубликат:
используя оператор с несколькими переменными

У меня есть несколько одноразовых объектов для управления. Правило CA2000 просит меня удалить все мои объекты перед выходом из области. Мне не нравится использовать метод .Dispose(), если я могу использовать предложение use. В моем конкретном методе я должен написать много использования при использовании:

using (Person person = new Person()) {
    using (Adress address = new Address()) { 
        // my code
    }
}

Можно ли написать это по-другому, например:

using (Person person = new Person(); Adress address = new Address())
4b9b3361

Ответ 1

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

Legal:

using (Person joe = new Person(), bob = new Person())

Illegal:

using (Person joe = new Person(), Address home = new Address())

Лучшее, что вы можете сделать, это вставить операторы using.

using (Person joe = new Person())
using (Address home = new Address())
{
  // snip
}

Ответ 2

Лучшее, что вы можете сделать, это:

using (Person person = new Person())
using (Address address = new Address())
{ 
    // my code
}

Ответ 3

Вы могли бы сделать

using (IDisposable iPerson = new Person(), iAddress = new Address())
{
    Person person = (Person)iPerson;
    Address address = (Address)iAddress;
    //  your code
}

но это вряд ли улучшится.

Ответ 4

Вы можете использовать только несколько объектов в одном операторе using, если они одного типа. Вы все еще можете вставлять операторы без скобок.

using (Person person = new Person())
using (Address address = new Address())
{

}

Ниже приведен пример множественного объекта с использованием оператора:

using (Person p1 = new Person(), p2 = new Person())
{

}