【发布时间】:2011-07-02 12:18:43
【问题描述】:
我正在使用一些 XmlReader 和 XmlWriter 对象对一些 try...catch 块内的字符串做一些必要的工作。
我知道使用符号using (XmlReader NewReader = XmlReader.Create(...)) 是首选语法,但我不太喜欢这样,所以我还要附加finally 块并执行NewReader.Close(); 和NewWriter.Close();。
然而,代码分析 抱怨这些对象没有被释放,从而迫使我以某种方式调用Dispose() 方法。
问题是在这些类中Dispose() 方法是显式实现的,所以我必须使用((IDisposable)(NewReader)).Dispose(); 和((IDisposable)(NewWriter)).Dispose();。
这种技术有什么缺点吗?
【问题讨论】:
-
你为什么不想使用 using 语句。它可以完成您需要做的所有事情,您不会收到 fxcop 警告并且它比使用 try-finally 更简洁。
标签: c# .net idisposable explicit-implementation