我正在使用一些XmlReader
和XmlWriter
對象來對某些try...catch
塊內的字符串做一些必要的工作。顯式轉換爲IDisposable
我知道,使用符號using (XmlReader NewReader = XmlReader.Create(...))
是首選語法,但我真的不喜歡那個,所以我也追加finally
塊和執行NewReader.Close();
和NewWriter.Close();
。
但是,代碼分析抱怨說這些對象沒有被處置,因此迫使我以某種方式調用Dispose()
方法。
問題是,在這些類中Dispose()
方法是明確實施的,所以我必須使用((IDisposable)(NewReader)).Dispose();
和((IDisposable)(NewWriter)).Dispose();
。
這種技術有什麼缺點嗎?
爲什麼你不想使用using語句。它做你需要做的一切,你不會得到fxcop警告*,*它比使用try-finally更簡潔。 – s1mm0t