我有一个结构,它有一个报告为重叠的非重叠字段。
[FieldOffset(8)]
Int32 X;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)]
[FieldOffset(12)]
string Y;
[FieldOffset(28)]
int Z;
报告的错误是:
无法加载类型“XXX”...它包含偏移 12 处的对象字段,该对象字段未正确对齐或被非对象字段重叠。
它只发生在发布配置中(启用了跟踪、调试标志和不安全代码,关闭了优化),猜测 - 它会发生什么?
UPD:感谢@svick。确认 x64 构建不是人们想要的编组。