Equivalente in C # dello struct.pack di python
-
10-07-2019 - |
Domanda
Esiste una libreria per C # che consente funzionalità simili a struct
di python dal libreria standard ?
Si può emulare abbastanza attentamente la libreria struct con strutture allineate reali. Ma non ho ancora trovato alcun modo per controllare direttamente l'endianità nelle strutture di C # (le strutture di C # sembrano essere più orientate verso l'interoperabilità COM, e meno verso l'imballaggio binario per scopi generici).
Soluzione
L'equivalente più vicino sarebbe probabilmente usare BinaryWriter
scrivendo in un MemoryStream
o BitConverter
per una conversione una tantum di un singolo valore in un array di byte.
Se vuoi controllare l'endianness, puoi usare il mio EndianBinaryWriter / EndianBitConverter da MiscUtil . Una caratteristica extra del mio EndianBitConverter
è che puoi convertire in una porzione specifica di un array esistente, il che ti sarebbe d'aiuto se volessi portare struct.pack
tu stesso.