クラス、構造体、および共用体のマーシャリング

.NET Framework におけるクラスと構造体は類似しています。どちらにも、フィールド、プロパティ、およびイベントを関連付けることができます。また、値型は静的メソッドと非静的メソッドを持つこともできます。主な違いは、構造体が値型でありクラスが参照型であるということです。

クラス、構造体、および共用体に関するマーシャリング オプションを次の表に列挙し、それぞれの使用方法を説明し、対応するプラットフォーム呼び出しのサンプルへのリンクを示します。

説明 サンプル

クラスを値渡し。

マネージの場合と同様に、整数メンバを含むクラスを In/Out パラメータとして渡します。

SysTime

構造体を値渡し。

構造体を In パラメータとして渡します。

構造体

構造体を参照渡し。

構造体を In/Out パラメータとして渡します。

OSInfo

入れ子になった構造体を含む構造体 (平坦化)。

入れ子にした構造体を含む構造体を表すクラスをアンマネージ関数の中で渡します。構造体はマネージ プロトタイプで 1 つの大きな構造体へと平坦化されます。

FindFile

入れ子になった構造体を含む構造体 (非平坦化)。

埋め込み構造体を含む構造体を渡します。

構造体

別の構造体へのポインタを含む構造体。

第 2 の構造体へのポインタをメンバとして含む構造体を渡します。

構造体

整数を含む構造体の配列を値渡し。

整数だけを含む構造体の配列を In/Out パラメータとして渡します。配列のメンバを変更できます。

配列

整数と文字列を含む構造体の配列を参照渡し。

整数と文字列を含む構造体の配列を Out パラメータとして渡します。呼び出された関数によって配列用のメモリを割り当てます。

OutArrayOfStructs

値型を含む共用体。

値型 (整数と倍精度浮動小数点数) を含む共用体を渡します。

Unions

混合型を含む共用体。

混合型 (整数と文字列) を含む共用体を渡します。

Unions

構造体に含まれる null 値。

値型への参照の代わりに null 参照 (Visual Basic では Nothing) を渡します。

HandleRef

参照

概念

プラットフォーム呼び出しのデータ型
文字列のマーシャリング
型の配列のマーシャリング
各種のマーシャリングのサンプル

その他の技術情報

プラットフォーム呼び出しによるデータのマーシャリング