两种写流的方法?

时间:2018-10-07 08:39:02

标签: c#

这是我经常看到的两种类型的流写入过程。 将消费委托给上层:

public Stream OpenWrite()
{
    return File.OpenWrite(/*...*/); //this is example method invokation
}
//...
using(var output = OpenWrite())
{
    input.CopyTo(output);
}

强行消耗流:

public void WriteAll(Stream input)
{
    using(input)
    using(var output = File.OpenWrite())//this is example method invokation
    {
        input.CopyTo(output)
    }
}

WriteAll 可以通过 OpenWrite 作为扩展方法轻松实现:

public void WriteAll(Stream input)
{
    using(input)
    using(var output = OpenWrite())
    {
        input.CopyTo(output)
    }
}

在这种具体情况下,可以通过 WriteAll 实现 OpenWrite 吗?

public Stream OpenWrite()
{
    return /*some produccer/consumer stream ? */
}

我问是因为我需要解决类似的任务,将强制性消费转化为懒惰消费。

0 个答案:

没有答案