Frage

Dies mag wie eine noddy Frage erscheinen, aber ich war zu dieser Suche, weil ich hörte, wie jemand behaupten, dass Sie Close aufrufen müssen () auf einem Filestream, auch wenn es in einem mit Block ist (und sie haben Code, wo Close () wird direkt am Ende des Blocks).

genannt

Ich weiß, dass Close () soll Dispose () nennen, aber ich dachte, dass ich tiefer aussehen würde, da dies .NET 1.1-Code ist, und der Großteil meiner Erfahrung war mit 2,0 auf.

Eine Sache, die mir auffiel, war, dass die MSDN-Dokumentation für Filestream hat Dispose () und Dispose (bool) für .Net 2.0 auf, aber nur (bool) Entsorgen für .Net 1.1.

dachte ich, dass vielleicht ein Versehen sein, so habe ich Reflektor in eine Baugruppe suchen - und auch da, ich sehe Dispose (bool), aber keine Dispose ()

.

Ist das richtig? Wenn ja, was ist hier die Geschichte? Filestream arbeitet in einem mit Block -. Was ich meinte, dachte sie umsetzen müssen IDisposable, die meines Wissens nur erklärt Dispose ()

Gibt es eine Compiler Magie geht, oder bin ich dabei eine versteckte Implementierung von Dispose () irgendwo (die vermutlich ruft Dispose (true) oder Entsorgen (false)?)

Schließlich (kein Wortspiel beabsichtigt), können Sie bestätigen, dass ein Filestream-Scoping-Block verwendet wird geschlossen Strom am Umfang Ausgang in .NET 1.1?

[Bearbeiten]

Nur um zu klären, ist dies C # -Code. Ich verstehe, dass VB.Net nicht die Anweisung using bis .Net 2.0 erhalten hat, aber mein Verständnis ist, dass C # es in 1.1 hat (und mein 1.1 Code hier hat es in und es kompiliert)

War es hilfreich?

Lösung

Es ist ein wenig komisch umgesetzt, aber es ist da: Die Basisklasse für Filestream: System.IO.Stream implementiert IDisposable (Filestream erbt es nur)

.

Die Klasse Basisstrom implementiert Dispose () explizit, so dass Sie nur sehen Dispose (), wenn Sie den Stream als IDisposeable werfen (was ist das, was Sie mit {} der Fall ist).

Stream.Dispose () ruft Stream.Close ().

(got all dies über Reflector)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top