编辑:以下所有内容都适用于Mono / Xamarin,但在使用TypeLoadException的.NET上崩溃
当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);
}
}
答案 0 :(得分:1)
这是一个指针 IMO,您应该避免在显式布局结构中使用引用类型字段。