У меня есть структура, определенная ниже:
[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.
Кажется, я не могу найти никаких вопросов относительно того, почему это произойдет.
Какие-нибудь предложения будут полезны?