5 Stimmen

Allgemeine Regel, wann IDisposable zu implementieren ist

EDIT : Diese Frage ist ein Duplikat von Was ist der Unterschied zwischen verwalteten und eigenen Ressourcen bei der Entsorgung? (.NET) und viele andere. Bitte antworten Sie den anderen, wenn Sie etwas hinzuzufügen haben.


Nach Angaben der Rahmengestaltungsrichtlinien von Krzysztof Cwalina und Brad Abrams, sollte ein Typ, der Instanzen von Einwegtypen enthält, IDisposable implementieren.

Gibt es eine andere allgemeine Faustregel dafür, wann es am besten ist, IDisposable zu implementieren?

1 Stimmen

Dies ist eine mehrfache, mega-duplizierende. Bitte suchen Sie zuerst ein paar Minuten lang in SO.

1 Stimmen

Ich stimme nicht zu, dass dies ein Duplikat von "Was ist der Unterschied " ist, weil die vorherige Frage nicht wirklich auf Best Practice oder mit Feldern sprechen, die IDisposable implementieren.

0 Stimmen

Ich bin mir sicher, dass es sich um ein Duplikat handelt, aber ich glaube nicht, dass es ein exaktes Duplikat der oben verlinkten Frage ist.

14voto

ddc0660 Punkte 3962

Implementieren Sie IDisposable, wenn Sie eine Klasse haben, die eine nicht verwaltete Ressource umschließt, oder wenn Ihre Klasse ein Feld hat, das IDisposable implementiert.

5voto

jason Punkte 227577

Wenn Sie Folgendes brauchen freigeben nicht verwaltete Ressourcen, implementieren IDisposable .

1 Stimmen

Sie sollten auch IDisposable implementieren, wenn Ihre Klasse Felder hat, die IDisposable implementieren

2 Stimmen

Die ursprüngliche Frage lautet: "Gibt es neben der Regel, dass ein Typ, der Instanzen von Einwegtypen enthält, IDisposable implementieren sollte, eine weitere allgemeine Faustregel dafür, wann es am besten ist, IDispoable zu implementieren?

0 Stimmen

Darüber hinaus, wenn Sie Instanzen von Objekten, die IDispoable implementieren haben, dann haben Sie nicht verwaltete Ressourcen, die freigegeben werden müssen und somit fällt es unter die Regel, die ich angegeben.

2voto

Ian Davis Punkte 3808

Von MSDN: http://msdn.microsoft.com/en-us/library/system.idisposable.aspx

Verwenden Sie die Dispose-Methode dieser Schnittstelle, um nicht verwaltete Ressourcen in Verbindung mit dem Garbage Collector explizit freizugeben. Der Verbraucher eines Objekts kann diese Methode aufrufen, wenn das Objekt nicht mehr benötigt wird.

1voto

Otávio Décio Punkte 72052

Immer wenn Sie Ressourcen zuweisen, die freigegeben werden müssen, wie z. B. Dateien, Handles, usw. Wenn Sie zum Beispiel Win32-Ressourcen verwenden (die IDisposable nicht implementieren), sollten Sie IDisposable implementieren, um sie freizugeben.

1voto

AutomatedTester Punkte 21864

Normalerweise setze ich IDisposable jedes Mal ein, wenn ich eine Bereinigung von Elementen vornehmen muss. Für mich ist dies der Fall, wenn ich Code schreibe, der Datenbanken/Netzwerke/Dateisysteme abstrahiert.

Es markiert einfach Elemente, die für den Garbage Collector bereit sind, anstatt darauf zu warten, dass er es selbst versucht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X