Wann zu entsorgen?

8

Ich bin verwirrt über all das Gerede über IDispose und "using" Statements. Ich frage mich, ob mir jemand sagen kann, ob ich im folgenden Testbeispiel entweder eine "using" -Anweisung oder eine Art Implementierung von IDispose verwenden muss ...

%Vor%     
Ann Sanderson 19.03.2012, 20:19
quelle

4 Antworten

21

Nein, Ihr Beispiel verwendet keine Ressourcen, die entsorgt werden müssen (es berührt nichts, das IDisposable implementiert, oder direkte Zugriffe auf nicht verwaltete Ressourcen), sodass Sie IDisposable nicht implementieren müssen.

Wenn Sie jetzt Ihre Klasse in öffnen ändern und ein FileStream -Feld beibehalten, das sich auf die offene Dateikennung bezieht, dann , wäre es sinnvoll,% zu implementieren co_de%, um den Stream zu schließen.

    
Jon Skeet 19.03.2012 20:20
quelle
7

Nein, in dem bereitgestellten Code sehe ich keine Ressourcen, die entsorgt werden müssen. Also die Antwort ist nein , benutze nicht diesen Code es.

    
Tigran 19.03.2012 20:27
quelle
6

In Ihrem Beispiel gibt es nichts zu entsorgen, also müssen Sie das nicht tun.
Wenn Sie Dateien lesen / schreiben wollen, können Sie Streamreader / Streamwriter dafür verwenden und auf diese Weise müssen Sie diese Objekte nach der Verwendung entsorgen.

%Vor%

In diesem Fall hilft Ihnen die using-Anweisung, nicht zu denken , Ihr Objekt manuell zu disponieren / zu schließen /

    
Chuck Norris 19.03.2012 20:21
quelle
4

In Ihrem Code ist kein Dispose / using erforderlich - für eine endgültige Anleitung zu IDisposable siehe hier .

    
Yahia 19.03.2012 20:32
quelle