2012-12-13 33 views
23

thể trùng lặp:
using statement with multiple variablesCách viết một số hướng dẫn sử dụng?

Tôi có một số đối tượng dùng một lần để quản lý. Quy tắc CA2000 yêu cầu tôi xử lý tất cả đối tượng của tôi trước khi thoát khỏi phạm vi. Tôi không thích sử dụng phương thức .Dispose() nếu tôi có thể sử dụng mệnh đề sử dụng. Trong phương pháp cụ thể của tôi, tôi nên viết nhiều sử dụng trong việc sử dụng:

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

Có thể viết những dòng này trên một cách khác như:

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

Những gì bạn muốn sử dụng sẽ trở nên rất nhầm lẫn .... nó cũng không phải là cú pháp hợp lệ. –

Trả lời

30

Bạn có thể tuyên bố hai hoặc nhiều đối tượng trong một tuyên bố using (cách nhau bằng dấu phẩy). Nhược điểm là chúng phải cùng loại.

pháp lý:

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

bất hợp pháp:

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

Điều tốt nhất bạn có thể làm là tổ những điều khoản sử dụng.

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

Điều tốt nhất bạn có thể làm là:

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

Bạn chỉ có thể sử dụng nhiều đối tượng trong một câu lệnh sử dụng duy nhất nếu chúng cùng loại. Bạn vẫn có thể lồng bằng cách sử dụng câu lệnh không có dấu ngoặc vuông.

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

} 

Dưới đây là một ví dụ về một đối tượng nhiều, cùng loại sử dụng tuyên bố:

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

} 
8

Bạn thể làm

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

nhưng nó hầu như không được cải thiện.

Các vấn đề liên quan