2013-06-28 34 views

Trả lời

29

Vâng, đó là toàn bộ vấn đề. Nó biên dịch xuống:

SomeDisposableType obj = new SomeDisposableType(); 
try 
{ 
    // use obj 
} 
finally 
{ 
    if (obj != null) 
     ((IDisposable)obj).Dispose(); 
} 

Hãy cẩn thận về thuật ngữ của bạn tại đây; bản thân đối tượng không được deallocated. Phương thức Dispose() được gọi và, thông thường, các tài nguyên không được quản lý được phát hành.

10

Nếu đối tượng thực hiện IDisposable, nó sẽ được gọi.

Từ using Statement (C# Reference)

Định nghĩa một phạm vi, bên ngoài trong đó một hoặc nhiều đối tượng sẽ được xử lý.

Tuyên bố sử dụng cho phép lập trình viên chỉ định khi nào các đối tượng mà sử dụng tài nguyên sẽ giải phóng chúng. Đối tượng được cung cấp cho câu lệnh phải triển khai giao diện IDisposable. Giao diện này cung cấp phương thức Vứt bỏ, nên giải phóng tài nguyên của đối tượng.

+0

+1 để lưu ý rằng đối tượng phải triển khai 'IDisposable'. – Tim

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