【发布时间】:2020-08-12 01:28:51
【问题描述】:
我设计了一个名为 ReceiveBuffer 的 StructLayout,在 ReceiveBuffer 内部,我有一个非托管类型的数组来存储数据。代码如下所示。
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi)]
public struct ReceiveBuffer
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 512)]
public char[] Data;
}
我想在这个结构中实现 IDisposable 方法,以便在不需要时正确处理 ReceiveBuffer。我查看了 MSDN 中的一些示例,但大多数情况是在类中使用而不是在结构中使用。我不确定如何在结构中管理它。如何在这样的结构中实现 IDisposible?
【问题讨论】:
-
为什么你需要实现 IDispose - 你没有包装任何实现 IDispose 或使用非托管资源的东西 - 请参阅stackoverflow.com/questions/1125693/…
标签: c# idisposable structlayout