मैं कक्षा के लिए IDISposable लागू कर रहा हूं और निपटान करते समय डिस्पोजेबल वस्तुओं की एक आंतरिक सूची है। क्या मुझे उन वस्तुओं को उनके माध्यम से लूप करके निपटाना चाहिए।डिस्पोजेबल वस्तुओं की सूची का निपटान कैसे करें?
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
"अधिभार" कीवर्ड गलत है, इसे हटा दें। वीबीएनईटी आईडीई सभी आईडीस्पोजेबल कार्यान्वयन के 99.9% के लिए अनुचित बॉयलरप्लेट कोड उत्पन्न करता है। बस निपटान कोड को उप निपटान() पर ले जाएं और संरक्षित विधि से छुटकारा पाएं और SuppressFinalize से छुटकारा पाएं। –
@ हंस, क्या आप अपने सुझाव के कारण बता सकते हैं? – Joker
बॉयलरप्लेट कोड केवल तभी उपयुक्त होता है जब आप फ़ाइनलाइज़र को कार्यान्वित करते हैं। यह बेहद दुर्लभ है। –