2012-12-13 11 views
23

可能性の重複:
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()) 
+1

あなたが使いたいものは非常に混乱します....それはまた、有効な構文ではありません。 –

答えて

30

あなたは、(カンマで区切って)usingステートメント内の2つ以上のオブジェクトを宣言することができます。欠点は、同じタイプでなければならないということです。法的

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

違法:

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

あなたができる最善のusingステートメントの巣です。

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

あなたができる最善のは、次のとおりです。

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

複数のオブジェクトは、同じタイプのものであれば、単一のusingステートメントでのみ使用できます。大括弧なしのステートメントを使用してネストすることはできます。ここ

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

} 

文を使用して、複数のオブジェクト、同じタイプの例である:

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

} 
8

あなた

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

を行うことができますが、それはほとんど改善ません。

関連する問題