【问题标题】:How do I return a Stream from an Extension method without breaking the Destructor?如何在不破坏析构函数的情况下从扩展方法返回流?
【发布时间】:2016-05-23 23:37:47
【问题描述】:

我想将byte[] 转换为流,并将此功能作为扩展方法,因为我需要执行数百次。

using(MemoryStream m = new MemoryStream()) {
    ProtoBuf.Serializer.Serialize(m, fiveHundredBytesHere);
    m.Seek(0, 0);
}

从这个重复操作中清理我的代码的正确方法是什么?

【问题讨论】:

  • 你没有。如果您以后需要使用流,请不要使用 using 构造并自行处理它。

标签: c# serialization bytearray extension-methods protobuf-net


【解决方案1】:

“如何在不破坏析构函数的情况下从扩展方法返回流?”

您可以在使用不会破坏析构函数的流的方法中创建回调,或者省略 using 语句并返回流并将其释放到调用代码中。

【讨论】:

  • 回调方法将是一个可怕的选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
相关资源
最近更新 更多