私は次のような構造を持っています:
構造体データ {int no; 文字列名; 整数ID};
この構造をバイト配列に変換しています。これを構造形式に戻す必要があります。そのためには、最初のメンバーを整数と文字列に変換する必要があります。bytearray を構造体に変換する方法は?
答えは、構造体をバイト配列にどのように変換するかによって異なります。理論的には、同じ手順を逆の順序で実行する必要があります。
たとえば、次のように構造をシリアル化するとします。
バイト配列を構造体に変換するには、その構造体型の変数を定義し、バイト配列から変換された値をメンバーに割り当てるだけです!
BitConverter
クラスをチェックしてください。byte 配列を int に変換する方法の例を次に示します。
BitConverter
ToChar() メソッドがあるにもかかわらず、文字列変換は実際には役に立ちません (Marc がコメントで述べているように)。ASCIIEncoding
、または名前空間UTF8Encoding
内の他の XxxEncoding クラスのいずれかを代わりに使用できますSystem.Text
。
これは .Net 固有であることに注意してください。
多くのプラットフォームには、この目的のためのツールが含まれていることに注意してください。カスタムの [de]serialization コードを作成することはできますが、すぐに面倒になる可能性があります。
たとえば、Google のプロトコル バッファは、ワイヤ形式を記述するための言語に依存しない* メカニズムです。すべてを手作業で行うと、技術的にはより良い (より小さな) シリアル化を実現できますが、より多くの作業が必要になります...
*= Google レポジトリの c++、java など -コミュニティによるその他多数