当结构中显式布局的字段之一是对象时会发生什么
本文关键字:对象 什么 结构 布局 字段 | 更新日期: 2023-09-27 18:29:38
编辑:下面的所有内容都适用于Mono/Xamarin,但在.NET上因TypeLoadException而崩溃
当field2被打印到stdout时,每次运行程序时我都会得到一个新的整数。这个价值观的意义是什么?
class Program
{
[StructLayout(LayoutKind.Explicit)]
struct Data
{
[FieldOffset(0)]
public object Field1;
[FieldOffset(0)]
public int Field2;
}
public static void Main()
{
var a = new Data();
a.Field1 = new object();
Console.WriteLine(a.Field2);
}
}
这是一个指针
IMO,您应该避免在显式布局的结构中使用引用类型字段