Tôi đang triển khai IDisposable cho một lớp và trong khi xử lý có một danh sách nội bộ các đối tượng dùng một lần. Tôi có nên xử lý các đối tượng đó bằng cách lặp qua chúng không.Làm thế nào để vứt bỏ một danh sách các vật dụng dùng một lần?
public Class MyDisposable
Implements IDisposable
private _disposbaleObjects as new List(of OtherDisposables)
Public Overloads Sub Dispose() Implements System.IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub
Protected Overridable Sub Dispose(ByVal disposing As Boolean)
If Not Me.disposedValue Then
If disposing Then
? Should I dispose the the list like this ?
For Each obj In _disposbaleObjects
obj.dispose()
Next
End If
End If
Me.disposedValue = True
End Sub
End Class
Từ khóa "Quá tải" sai, hãy xóa nó. VB.NET IDE tạo mã boilerplate không phù hợp cho 99,9% của tất cả các triển khai IDisposable. Chỉ cần di chuyển mã xử lý sang Sub Dispose() và loại bỏ phương thức được bảo vệ và SuppressFinalize. –
@Hans, Bạn có thể cho biết lý do đề xuất của mình không? – Joker
Mã boilerplate chỉ thích hợp khi bạn thực hiện một finalizer. Điều đó cực kỳ hiếm. –