Stellen Sie sich vor, ist es ein Problem, wenn ich Methode (IDisposable
ist implementiert), wo mein privates Feld ist ein MemoryStream es im Konstruktor initialisiert wird.Den gleichen MemoryStream reinitialisieren, nachdem die Position dieses Streams auf 0 gesetzt wurde
Wird mein IDisposable
alle Ressourcen bereinigen?
einmal privat deklarieren es und initialisieren es einmal im Konstruktor:
private myMemoryStream;
MyConstructor(){
_myMemoryStream= new MemoryStream();
}
es so in jeder Methode Reuse:
_myMemoryStream.Position=0;
_myMemoryStream = ...; //new stream
Abgleich (IDisposable in meiner Klasse implementiert):
public void Dispose()
{
if (_myMemoryStream != null)
{
_myMemoryStream.Close(/*todo: true oder false*/);
_myMemoryStream.Dispose();
}
}
Mit dieser Klasse in verschiedenen Kontexten werde ich eine using
setzen um es herum.
Aktualisiert meine Frage (basierend auf @Oscar Vicente Perez Vorschläge), jetzt würde ich es so verwenden?!
aktualisiert meine Frage – kkkk00999
Wenn Ihre Wiederverwendung ist wie: \t '_myMemoryStream.Position = 0; \t _myMemoryStream = ...; // new stream' und '// new stream' ist' _myMemoryStream = new MemoryStream(); ' Sie behalten das gleiche Problem, das ich antworte. Wenn Sie eine bessere Antwort benötigen, geben Sie Ihren gesamten Code ein. –