Ist dies das richtige Muster zu folgen, d. H. Wenn meine Klasse Wegwerf-Mitglieder hat, muss ich explizit Dipose()
auf jedem anrufen?Wenn meine Klasse ein SqlConnection (oder anderes verfügbares) Mitglied hat, sollte IDisposable implementiert werden?
class MyClass : IDisposable
{
public MyClass()
{
conn = maybeCreateAConnection();
}
public void Dispose()
{
if(conn!=null)conn.Dispose();
}
private SqlConnection conn;
}
[Muster löschen] (https://msdn.microsoft.com/en-us/library/b1yfkh5e (v = vs.110) .aspx), zuerst ** DO ** - "** DO ** implementieren Das Basic Dispose Pattern für Typen, die Instanzen von Disposable-Typen enthalten " –
Ich würde fragen, warum Sie ein _member_ für die Verbindung benötigen - Verbindungen sollten schnell erstellt, verwendet und entsorgt werden. Es gibt selten einen zwingenden Grund, eine Verbindung für die Dauer einer Klasse aufrecht zu erhalten. –
@Damien_The_Unbeliever Es scheint kludgy, mehr wie C++ muss sich erinnern, welche Felder sind Einweg! –