Eine geistige Blockade heute, brauchen eine Hand, die meine Logik nicht mutiert.Disposables, Verwenden und Versuchen/Catch Blocks
Traditionell würde ich Datei tun i/o ähnlich wie diese:
FileStream fs = null; // So it's visible in the finally block
try
{
fs = File.Open("Foo.txt", FileMode.Open);
/// Do Stuff
}
catch(IOException)
{
/// Handle Stuff
}
finally
{
if (fs != null)
fs.Close();
}
Dies ist jedoch nicht sehr elegant ist.
Idealerweise würde ich gerne den using
Block verwenden, um den Filestream zu entfernen, wenn ich fertig bin, aber ich bin unsicher über die Synergie zwischen der Verwendung und versuchen/fangen.
Dies ist, wie ich die oben implementieren möchte:
try
{
using(FileStream fs = File.Open("Foo.txt", FileMode.Open))
{
/// Do Stuff
}
}
catch(Exception)
{
/// Handle Stuff
}
Aber ich mache mich Sorgen, dass ein vorzeitiger Ausgang (via Ausnahme ausgelöst) aus dem mit Block unter Verwendung des Block nicht zulassen kann vervollständige die Ausführung und räume das Objekt auf. Bin ich nur paranoid, oder wird das tatsächlich so funktionieren, wie ich es vorhabe?