C # эквивалент struct.pack для Python - PullRequest
3 голосов
/ 30 ноября 2009

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

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

1 Ответ

6 голосов
/ 30 ноября 2009

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

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

...