小编Vik*_*iev的帖子

如果 StreamWriter 未释放,MemoryStream.ToArray() 返回空数组

我试图从我的模型中获取字节数组并将其放入文件中。我有这样的方法:

        public static byte[] GetByteArray(List<MyModel> models)
    {
        using var ms = new MemoryStream();
        using var sw = new StreamWriter(ms);

        foreach (var model in models)
        {
            sw.Write(model.Id + "," + model.Name);
            sw.WriteLine();
        }

        sw.Dispose();
        return ms.ToArray();
    }
Run Code Online (Sandbox Code Playgroud)

此方法工作正常,但可能认为我不需要手动处置StreamWriter,因为我有一个 using 语句。我也这么想,但是当我删除时sw.Dispose();返回ms.ToArray();一个空数组。有人可以向我解释这种行为吗?

.net c# stream

2
推荐指数
1
解决办法
1901
查看次数

标签 统计

.net ×1

c# ×1

stream ×1