次のコードを使用すると、 「オブジェクト以外のフィールドが正しく配置されていないか、重なり合っています」というエラーが発生します。
public struct TypeA
{
public string A1;
public string A2;
}
public struct TypeB
{
public string B1,
public string B2;
}
System.Runtime.InteropServicesとLayoutKind.Explicitを使用してユニオンを実装しました。
[StructLayout(LayoutKind.Explicit)]
public struct TypeAorB
{
[FieldOffset(0)]
public TypeA aa;
[FieldOffset(0)]
public TypeB bb;
}
問題はstructのstringにあると思います。この問題を解決するにはどうすればよいですか?