如果我有这种方法:
public StreamReader GetResourceStream(string filename)
{
using (Stream stream = this.GetType().Assembly.GetManifestResourceStream(filename))
using (StreamReader sr = new StreamReader(stream))
{
return sr;
}
}
当我打电话时,我应该这样称呼它吗
StreamReader resource = GetResourceStream("blah.xml");
或这样:
using (StreamReader resource = GetResourceStream("blah.xml"))
{
// Do stuff
}
如果是第二种方法,这是否意味着
using (StreamReader sr = new StreamReader(stream))
行通过使用using
语句没有任何区别? 最佳答案
让GetResourceStream
方法将using语句放在要返回的对象周围并没有多大意义。这意味着您将以处置状态返回对象,这有什么用?它将向您抛出ObjectDisposed
异常。
因此,请删除工厂方法中的using
语句,然后在实际使用的地方应用using
语句。
它看起来应该更像这样:
public StreamReader GetResourceStream(string filename)
{
Stream stream = this.GetType().Assembly.GetManifestResourceStream(filename);
return new StreamReader(stream)
}
关于c# - 返回在 'using'语句中创建的实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7368249/