通过使用using语句正确处理StreamWriter

时间:2018-05-07 14:12:47

标签: c# using

using内部生成Stream

using (var generatedStream = GenerateStream(str))
{
    var streamContent = generatedStream;
}

GenerateStream(string s)看起来像这样:

private static Stream GenerateStream(string s)
{
    var stream = new MemoryStream();
    using (var writer = new StreamWriter(stream))
    {
        writer.Write(s);
        writer.Flush();
        stream.Position = 0;
        return stream;
    }
}

当我将generatedStream分配给streamContent时,更具体地说,当我退出using中的GenerateStream语句时,它会说stream已被处置。在确保我处理我的作家时,我做错了什么?

更新:

在链接问题中发布的解决方案似乎是解决此特定问题的方法。

2 个答案:

答案 0 :(得分:0)

方法GenerateStream()中的using语句不应出现

using (var writer = new StreamWriter(stream))
{

答案 1 :(得分:0)

using语句有助于处理流。它位于代码块的末尾。

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-statement