PackingSize Énumération

Définition

Spécifie l'un des deux facteurs qui déterminent l'alignement de mémoire des champs lorsqu'un type est marshalé.

Cette énumération prend en charge une combinaison au niveau du bit de ses valeurs membres.

public enum class PackingSize
public enum PackingSize
[System.Flags]
[System.Serializable]
public enum PackingSize
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum PackingSize
type PackingSize = 
[<System.Flags>]
[<System.Serializable>]
type PackingSize = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type PackingSize = 
Public Enum PackingSize
Héritage
PackingSize
Attributs

Champs

Size1 1

La taille de compactage est égale à 1 octet.

Size128 128

La taille de compactage est égale à 128 octets.

Size16 16

La taille de compression est égale à 16 octets.

Size2 2

La taille de compression est égale à 2 octets.

Size32 32

La taille de compression est égale à 32 octets.

Size4 4

La taille de compression est égale à 4 octets.

Size64 64

La taille de compression est égale à 64 octets.

Size8 8

La taille de compression est égale à 8 octets.

Unspecified 0

La taille de compactage n'est pas spécifiée.

Remarques

La taille de compression affecte l’alignement des champs dans les structures et les classes dont l’organisation est LayoutKind.Sequential. La taille d’emballage est l’un des deux facteurs qui déterminent le décalage d’un champ lorsque la structure ou la classe est marshalée ; l’autre facteur est la taille effective du champ. Pour déterminer le décalage d’un champ :

  1. Calculez la valeur minimale du décalage en ajoutant la taille du champ précédent au décalage du champ précédent.

  2. Calculez la taille de compression naturelle du champ : si le champ est un type de données simple, utilisez la taille. Si le champ est un tableau, utilisez la taille d’un élément de tableau. Si le champ est lui-même une structure, comparez la taille d’emballage de cette structure à la taille du plus grand champ de cette structure et utilisez la plus petite des deux valeurs.

  3. Calculez la taille de compression effective en comparant la taille de compression à la taille de compression naturelle du champ, calculée à l’étape 2. Utilisez la plus petite des deux nombres.

  4. Calculez le décalage. Le décalage est le premier emplacement de mémoire égal ou supérieur au minimum, et un multiple de la taille de compression effective calculée à l’étape 3.

Notes

Une fois les décalages calculés pour tous les champs de la classe ou de la structure, le remplissage est ajouté afin que la taille globale soit un multiple de la taille d’emballage.

Par exemple, dans une classe contenant un byte et un long, en utilisant la taille Size1d’emballage , le décalage du byte champ est égal à zéro (0) et le décalage du long champ est un (1). Si la taille d’emballage est Size4, le long champ a un décalage de quatre (4). Dans une classe contenant deux short champs, en utilisant n’importe quelle taille d’emballage, le décalage du deuxième short champ est deux (2).

Notes

La modification de la taille de compression peut affecter les performances si les champs sont alignés sur les décalages qui ne sont pas multiples de leur taille.

S’applique à