从方法返回可为空的 GCHandle
本文关键字:GCHandle 方法 返回 | 更新日期: 2023-09-27 17:57:10
想要这样做,但GCHandle不可为空。我需要 GCHandle 来检索与缓冲区关联的 IntPtr 并在以后释放它,因此它不是只返回 IntPtr 的选项。
public GCHandle PacketToGCHandle(PacketAdmin packet)
{
byte[] data;
bool result;
if ((data = PacketToByteData(packet)) != null)
{
GCHandle pinnedArray = GCHandle.Alloc(data, GCHandleType.Pinned);
return pinnedArray;
}
else
{
result = false;
report.BindReport(architecture.report);
}
return null;
}
您需要使其可为空:
public GCHandle? PacketToGCHandle(PacketAdmin packet)
这是以下的简短版本:
public Nullable<GCHandle> PacketToGCHandle(PacketAdmin packet)
它的值(如果存在)可以通过 Value
属性获取,HasValue
属性指示它是否null
。