title image


Smiley Dispose() und Finalize()
Hallo NewsGroup;

Ich brauche noch etwas hilfe bei der implementierung von Dispose()

Wenn ich ein Object zerstören möchte, muss ich dann Dispose() und danach noch das Object auf null setzten oder genügt nur der einfache Aufruf von Dispose()?

Welche Reihenfolge bzw. welches Vorgehen sollte bevorzugt werden?



Und übrigens wie ist es möglich, dass z.B. die System.IO.Stream-Klasse den IMember Dispose() verbergen kann, so dass ich erst die Instanz in ein IDisposable casten muss?



Stream implementiert Dispose() folgendermassen:

void IDisposable.Dispose()

komischerweise ist dieser Member für eine Instanz aber nicht sichtbar

Ich habe das ganze versucht 1:1 nachzubilden, aber es gelingt mir nicht ...



[STAThread]

static void Main() {

Stream st = new FileStream("C:\\Test.txt", FileMode.Create);

// st.Close();

// st.Dispose(); // 'System.IO.Stream' enthält keine Definition für 'Dispose'

// ((IDisposable)st).Dispose(); // Funktioniert ...

GC.SuppressFinalize(st);

st = null;

GC.Collect();

GC.Collect();

Console.WriteLine("Please try delete the file C:\\Test.txt ...");

// ... Delete the File C:\\Test.txt

// ... Nix geht mehr ...

Console.ReadLine();

}

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: