Значения структуры перезаписываются во время выполнения - PullRequest
0 голосов
/ 16 октября 2018

У меня есть структура, определенная ниже:

[StructLayout(LayoutKind.Explicit, Size = 10)]
public struct AudioSampleInfo
{
    [FieldOffset(0)]
    public ushort AudioBitPerSample;

    [FieldOffset(2)]
    public ushort AudioNumChannels;

    [FieldOffset(4)]
    public ushort AudioType;

    [FieldOffset(6)]
    public uint AudioSampleRate;
}

Однако во время выполнения значения, кажется, меняются.Кажется, что назначенный массив байтов в памяти кажется перекрывающимся.

Во время выполнения программы, когда мы устанавливаем значения как:

AudioSampleInfo audioInfo = new AudioSampleInfo();
audioInfo.AudioBitPerSample = 16;
audioInfo.AudioNumChannels = 1;

После установки AudioNumChannels, значение AudioBitsPerSample меняется на 272.

Кажется, я не могу найти никаких вопросов относительно того, почему это произойдет.

Какие-нибудь предложения будут полезны?

...