Domanda

Ho struttura come segue:

Dati struct {Int no; string name; int id};

sto convertendo tale struttura in ByteArray. Ho bisogno di convertire questo nuovo nel formato di struttura. Per questo ho bisogno di convertire primi membri in intero e stringa. Come convertire ByteArray nella struttura?

È stato utile?

Soluzione

Controlla la BitConverter classe. Ecco un esempio di come convertire array di byte a int .

Per BitConverter conversione di stringhe non è molto utile (come Marc mentiones nel suo commento), anche se ha il metodo Tochar (). È possibile utilizzare ASCIIEncoding , UTF8Encoding o una qualsiasi delle altre classi XxxEncoding nel System.Text namespace, invece.

Nota, questo è Net specifica.

Altri suggerimenti

Beh, la risposta in realtà dipende da come stai convertendo la struttura in array di byte. In teoria, è necessario eseguire le stesse operazioni in ordine inverso!

Per esempio, se si serializzare la struttura in modo tale che:

  • primi 4 byte = no
  • secondo 4 byte = id
  • byte riposo = flusso di byte di caratteri nel nome

quindi per convertire la matrice di byte di nuovo alla struttura, è sufficiente definire una variabile di quel tipo di struttura e assegnare i membri con i valori convertiti da array di byte!

Si noti che molte piattaforme includono strumenti per questo scopo; mentre si possono scrivere personalizzato [de] codice di serializzazione, può diventare noioso molto rapidamente.

Per esempio, Google buffer di protocollo è un meccanismo indipendente dal linguaggio * per descrivere una formato filo. È tecnicamente possibile ottenere una migliore (più piccolo) serializzazione se si fa tutto a mano, ma sarà molto più lavoro ...

* = C ++, Java, ecc nel repository Google - oltre a molto altro ancora dalla comunità

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top