下面是一个包装一个MemoryStream的示例代码:
using System;
using System.IO;
public class MemoryStreamWrapper : IDisposable
{
private MemoryStream _memoryStream;
private bool _disposed;
public MemoryStreamWrapper()
{
_memoryStream = new MemoryStream();
_disposed = false;
}
public void Write(byte[] buffer)
{
if (_disposed)
{
throw new ObjectDisposedException("MemoryStreamWrapper");
}
_memoryStream.Write(buffer, 0, buffer.Length);
}
public byte[] Read()
{
if (_disposed)
{
throw new ObjectDisposedException("MemoryStreamWrapper");
}
byte[] buffer = new byte[_memoryStream.Length];
_memoryStream.Position = 0;
_memoryStream.Read(buffer, 0, (int)_memoryStream.Length);
return buffer;
}
public void Dispose()
{
if (!_disposed)
{
_memoryStream.Dispose();
_disposed = true;
}
}
}
使用示例:
using System;
public class Program
{
public static void Main()
{
using (MemoryStreamWrapper streamWrapper = new MemoryStreamWrapper())
{
byte[] data = { 1, 2, 3, 4, 5 };
streamWrapper.Write(data);
byte[] readData = streamWrapper.Read();
foreach (byte b in readData)
{
Console.WriteLine(b);
}
}
}
}
在这个示例中,MemoryStreamWrapper类包装了一个MemoryStream对象,并提供了Write和Read方法来写入和读取数据。在使用完MemoryStreamWrapper对象后,通过实现IDisposable接口,确保及时释放内存流资源。
上一篇:包装一个具有可选位置参数的函数
下一篇:包装一个模型实例字段