C# эквивалент struct.pack для Python
Есть ли библиотека для C#, которая позволяет функциональность, аналогичную Python struct
из стандартной библиотеки?
Можно достаточно близко эмулировать библиотеку структур с реально выровненными структурами. Но я пока не нашел способа напрямую управлять порядком байтов в структурах C# (кажется, что структуры C# больше ориентированы на взаимодействие COM, а не на бинарную упаковку общего назначения).
1 ответ
Ближайший эквивалент, вероятно, будет использовать BinaryWriter
писать в MemoryStream
, или же BitConverter
для однократного преобразования одного значения в байтовый массив.
Если вы хотите управлять порядком байтов этого, вы можете использовать мой EndianBinaryWriter/EndianBitConverter из MiscUtil. Еще одна особенность моего EndianBitConverter
является то, что вы можете преобразовать в определенную часть существующего массива, который поможет вам, если вы хотите портировать struct.pack
сам.