Как написать несколько инструкций?
Возможный дубликат:
используя оператор с несколькими переменными
У меня есть несколько одноразовых объектов для управления. Правило CA2000 просит меня удалить все мои объекты перед выходом из области. Мне не нравится использовать метод .Dispose()
, если я могу использовать предложение use. В моем конкретном методе я должен написать много использования при использовании:
using (Person person = new Person()) {
using (Adress address = new Address()) {
// my code
}
}
Можно ли написать это по-другому, например:
using (Person person = new Person(); Adress address = new Address())
Ответы
Ответ 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())
{
}