Tôi có mã này, tôi lo ngại rằng nó "không an toàn" Tôi đã sử dụng Vứt bỏ() trước khi tuyên bố sử dụng kết thúc, đối với tôi nó hơi phi logic, nhưng nó hoạt động tốt. Vì vậy, nó có an toàn không?Điều gì xảy ra nếu tôi gọi là Vứt bỏ() trước khi sử dụng kết thúc câu lệnh?
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();
}
}
Nó sẽ cố gắng vứt bỏ đối tượng hai lần –
@JeroenvanLangen: điều đó không chính xác. Xem câu trả lời của hwd. – siride
@siride - 'luồng' _will_ được xử lý hai lần. Lỗi duy nhất trong bình luận Jeroens là từ 'try'. –