У меня есть этот код, я обеспокоен тем, что он «небезопасен» Я использовал Dispose() перед началом использования, для меня это немного нелогично, но он работает нормально. Так, это безопасно?Что произойдет, если я вызову Dispose() перед использованием конца инструкции?
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();
}
}
Он попытается удалить объект дважды –
@JeroenvanLangen: это неверно. См. Ответ hwd. – siride
@siride - «поток» _will_ будет удален дважды. Единственная ошибка в комментарии Jeroens - это слово «try». –