Значения структуры перезаписываются во время выполнения

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

[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.

Я не могу найти какие-либо проблемы относительно того, почему это произойдет.

Любые предложения будут полезны?

0 ответов

Другие вопросы по тегам