Mam ten kod, obawiam się, że to "nie jest bezpieczne" Użyłem Dispose() przed zakończeniem używania, dla mnie jest to trochę nielogiczne, ale działa dobrze. Czy to jest bezpieczne?Co się stanie, jeśli wywołam Dispose() przed użyciem zakończenia instrukcji?
using (FileStream stream = new FileStream(SfilePath, FileMode.Open))
{
try
{
XmlSerializer deserializer = new XmlSerializer(typeof(HighscoresViewModel));
HVM = deserializer.Deserialize(stream) as HighscoresViewModel;
}
catch (InvalidOperationException)
{
stream.Dispose();
(new FileInfo(SfilePath)).Delete();
HVM = new HighscoresViewModel();
}
}
Spróbuje usunąć obiekt dwukrotnie: –
@JeroenvanLangen: To jest nieprawidłowe. Zobacz odpowiedź hwd. – siride
@siride - 'stream' _will_ zostanie usunięty dwa razy. Jedyny błąd w komentarzu Jeroens to słowo "try". –