C#にて構造体(struct)からバイト配列(byte[])に内容のコピーをしたい時があります。

構造体とバイト配列のメモリーコピー方法は幾つかあり、またコピー速度も異なります。そのコピー方法を説明します。

サンプル構造体

上記の構造体をもとに以下説明をします。

 

バイト配列(byte[])を構造体(struct)に変換する

構造体のサイズだけbyte配列を確保します。

 

Marshalを使用して構造体にコピーする

 

GCHandleを使用して構造体にコピーする

 

ポインタで直接構造体にコピーする

 

構造体(struct)をバイト配列(byte[])に変換する

Marshalを使用してバイト配列にコピーする

 

GCHandleを使用してバイト配列にコピーする

 

ポインタで直接バイト配列にコピーする