如何用指令写几个?

时间:2012-12-13 15:35:30

标签: c# .net idisposable using

  

可能重复:
  using statement with multiple variables

我有几个可处理的一次性物品。 CA2000规则要求我在退出范围之前处置所有对象。如果我可以使用using子句,我不喜欢使用.Dispose()方法。在我的具体方法中,我应该使用以下方法编写许多内容:

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

是否可以用另一种方式写这个:

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

4 个答案:

答案 0 :(得分:30)

您可以在using语句中声明两个或多个对象(以逗号分隔)。缺点是它们必须是同一类型。

<强>法律:

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

非法:

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

您可以做的最好的事情是嵌套使用语句。

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

答案 1 :(得分:20)

你能做的最好的事情是:

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

答案 2 :(得分:8)

可以

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

但它几乎没有改善。

答案 3 :(得分:6)

如果它们属于同一类型,则只能在单个using语句中使用多个对象。您仍然可以使用不带括号的语句进行嵌套。

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

}

以下是使用语句的多个对象,相同类型的示例:

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

}