2012-12-13 24 views
23

Olası Çoğalt: Birkaç kullanma talimatı nasıl yazılır?


using statement with multiple variables

yönettiğim için birkaç tek kullanımlık nesne var. CA2000 kuralı, kapsamdan çıkmadan önce tüm nesneyi atmamı istiyor. Using yan tümcesini kullanabiliyorsam .Dispose() yöntemini kullanmayı sevmem. Benim spesifik yöntemde kullanıyorum kullanarak birçok yazmalısınız:

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

o gibi başka bir yolda bunu yazmak mümkün mü:

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

Kullanmak istediğiniz şey çok karışıklık olacak .... aynı zamanda geçerli bir sözdizimi değil. –

cevap

30

için (virgül ile ayrılmış) bir using açıklamada, iki veya daha fazla nesneyi ilan edebilir. Olumsuz olan, aynı tür olmak zorunda olmasıdır. Yasal

:

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

Yasadışı:

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

yapabileceğiniz en iyi kullanan ifadeler yuvasıdır.

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

Yapabileceğiniz en iyisi:

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

Aynı türdeyseniz, birden çok nesneyi tek bir kullanma deyiminde kullanabilirsiniz. İfadeleri parantez olmadan kullanmaya devam edebilirsiniz. Burada

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

} 

bir çok nesnenin bir örnek, aynı tip deyimi kullanılarak:

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

} 
8

Sen olabilir

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

yapmak ama pek bir gelişme.