Ima*_*heh 8 c# using-statement
我有这个代码,我担心它"不安全"我在使用语句结束之前使用了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();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 14
IDisposable.Dispose各州的文件:
如果多次调用对象的Dispose方法,则该对象必须忽略第一个之后的所有调用.如果多次调用Dispose方法,则该对象不得抛出异常.除了Dispose之外的实例方法可以在已经处置资源时抛出ObjectDisposedException.
假设IDisposable正确实施,这种使用是安全的.Dispose将被召唤第二次,并且第二次不会做任何事情.