Niepoprawnie wyrównany lub nakładający się błąd pola innego niż obiekt

Próbuję utworzyć następującą strukturę:

    [StructLayout(LayoutKind.Explicit, Size=14)]
    public struct Message
    {
        [FieldOffset(0)]
        public ushort X;
        [FieldOffset(2)]
        [MarshalAs(UnmanagedType.ByValArray, SizeConst=5)]
        private ushort[] Y;
        [FieldOffset(12)]
        public ushort Z;
    }

i otrzymuję następujący błąd:

Nie można załadować typu „Wiadomość” z zespołu, ponieważ zawiera pole obiektu w przesunięciu 4, które jest niepoprawnie wyrównane lub nakładane przez pole inne niż obiekt.

Czy ktoś wie, dlaczego powoduje to błąd?

Uwaga: nie mogę używać pakietu, ponieważ pracuję ze zwartą strukturą. Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion