C# эквивалент struct.pack для Python

Есть ли библиотека для C#, которая позволяет функциональность, аналогичную Python struct из стандартной библиотеки?

Можно достаточно близко эмулировать библиотеку структур с реально выровненными структурами. Но я пока не нашел способа напрямую управлять порядком байтов в структурах C# (кажется, что структуры C# больше ориентированы на взаимодействие COM, а не на бинарную упаковку общего назначения).

1 ответ

Решение

Ближайший эквивалент, вероятно, будет использовать BinaryWriter писать в MemoryStream, или же BitConverter для однократного преобразования одного значения в байтовый массив.

Если вы хотите управлять порядком байтов этого, вы можете использовать мой EndianBinaryWriter/EndianBitConverter из MiscUtil. Еще одна особенность моего EndianBitConverter является то, что вы можете преобразовать в определенную часть существующего массива, который поможет вам, если вы хотите портировать struct.pack сам.

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