PackingSize 列挙体
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Enumeration PackingSize

メンバ名 | 説明 | |
---|---|---|
Size1 | パッキング サイズは 1 バイトです。 | |
Size128 | パッキング サイズは 128 バイトです。 | |
Size16 | パッキング サイズは 16 バイトです。 | |
Size2 | パッキング サイズは 2 バイトです。 | |
Size32 | パッキング サイズは 32 バイトです。 | |
Size4 | パッキング サイズは 4 バイトです。 | |
Size64 | パッキング サイズは 64 バイトです。 | |
Size8 | パッキング サイズは 8 バイトです。 | |
Unspecified | パッキング サイズは指定されていません。 |

パッキング サイズは、構成が LayoutKind.Sequential の構造体およびクラスにおいて、フィールドのアライメントを規定します。パッキング サイズは、構造体またはクラスをマーシャリングするときのフィールドのオフセットを規定する 2 つの要素のうちの 1 つです。もう 1 つの要素は、フィールドの有効サイズです。フィールドのオフセットを決定するには、次の計算を行います。
-
フィールドの通常パッキング サイズを計算します。フィールドが単純なデータ型の場合は、そのサイズを使用します。フィールドが配列の場合は、配列要素のサイズを使用します。フィールド自体が構造体の場合は、構造体のパッキング サイズと、構造体内の最大フィールドのサイズを比較し、いずれか小さい方のサイズを使用します。
-
パッキング サイズと (手順 2 で計算した) フィールドの通常パッキング サイズを比較して、有効なパッキング サイズを計算します。比較の結果、いずれか小さい方の値を使用します。
-
オフセットを計算します。オフセットは、最小値以上で、手順 3 で計算した有効パッキング サイズの倍数となる最初のメモリ位置となります。
![]() |
---|
クラスまたは構造体内のすべてのフィールドについてオフセットを計算したら、全体のサイズがパッキング サイズの倍数となるように、パディングが追加されます。 |
たとえば、byte と long を含んでいるクラスで、パッキング サイズ Size1 を使用している場合、byte フィールドのオフセットは 0 となり、long フィールドのオフセットは 1 となります。パッキング サイズが Size4 の場合、long フィールドのオフセットは 4 となります。2 つの short フィールドを含むクラスで、パッキング サイズが任意の場合、2 番目の short フィールドのオフセットは 2 となります。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- PackingSize 列挙体のページへのリンク