Ich habe diesen Code, ich bin besorgt, dass es "nicht sicher" ist Ich habe Dispose () vor der Verwendung der Anweisung verwendet, für mich ist es etwas unlogisch, aber es funktioniert gut. Also, ist es sicher?
%Vor% Die Dokumentation für IDisposable.Dispose
lautet:
Wenn die Dispose-Methode eines Objekts mehr als einmal aufgerufen wird, muss das Objekt alle Aufrufe nach dem ersten ignorieren. Das Objekt darf keine Ausnahme auslösen, wenn seine Dispose-Methode mehrmals aufgerufen wird. Instanzmethoden außer Dispose können eine ObjectDisposedException auslösen, wenn Ressourcen bereits entsorgt werden.
Wenn IDisposable
korrekt implementiert ist, ist diese Verwendung sicher. Dispose
wird ein zweites Mal aufgerufen und tut das zweite Mal nicht.
Nun, wie von @hvd gesagt, dass diese Verwendung sicher ist; Es wird jedoch nicht empfohlen, wenn Sie Microsoft Fxcop
in Ihrem Codebeispiel implementieren, wird eine Fxcop-Warnung / Fehler CA2202: Do not dispose objects multiple times
Was sagt
Eine Methodenimplementierung enthält Codepfade, die mehrere verursachen können ruft IDisposable.Dispose oder ein Dispose-Äquivalent auf, z. B. a Close () -Methode für einige Typen, für dasselbe Objekt.
Tags und Links c# using-statement