我有以下函数,它采用url路径并获取读者。由于我无法关闭阅读器并退回它。调用者可以关闭返回的阅读器对象。

public  XmlReader GetXMLContent(string Path)
        {
         XmlTextReader responseReader= new XmlTextReader(XmlUrlPath);
         return responseReader;
        }

 XmlTextReader myReader =  GetXMLContent("http://sample.xml");
 while() // loop through all the elements
 {
 }

 myReader.close(); // close the reader

最佳答案

是的,一点没错。当方法返回时,调用者已经有效地拥有了读取者的所有权(在这种情况下)。

诚然我会使用using语句代替:

using (XmlTextReader reader = GetXmlContent("http://sample.xml"))
{
    ...
}


...使用您当前建议的代码,如果引发异常,您将不会关闭阅读器。

08-04 02:14