如果我有这个方法:
当我调用它时,我应该这样调用。
或者这样:
如果采用第二种方式,这是否意味着使用
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
语句的using (StreamReader sr = new StreamReader(stream))
行没有任何区别?
Stream
,而只需直接创建一个StreamReader
,但我很好奇,如果您需要创建一个Stream
并将其传递给StreamReader
的构造函数,您该如何做呢?(在我所知道的某些情况下,您需要创建一个中介流)。 - AhmetStreamReader
时,它会处理其中包含的Stream
。 - Jon SkeetStreamReader(Stream)
构造函数的文档明确说明:“当调用 StreamReader.Dispose 时,StreamReader 对象将在提供的 Stream 对象上调用 Dispose()。”所以我认为可以放心依赖它。如果您正在处理某些没有提供太多文档的东西,则会更加棘手。 - Jon Skeet