Partager via


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 d’empaquetage affecte l’alignement des champs dans les structures et classes dont le organization 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 d’emballage 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’empaquetage de cette structure à la taille du plus grand champ de cette structure et utilisez la plus petite des deux valeurs.

  3. Calculez la taille d’emballage effective en comparant la taille d’emballage à la taille d’emballage naturelle du champ, calculée à l’étape 2. Utilisez le plus petit 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 d’emballage effective calculée à l’étape 3.

Notes

Une fois que les décalages ont été 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, à l’aide de la taille Size1d’emballage , le byte décalage du champ est égal à zéro (0) et le long décalage du 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, à l’aide de n’importe quelle taille d’emballage, le décalage du deuxième short champ est de deux (2).

Notes

La modification de la taille d’empaquetage peut affecter les performances si elle entraîne l’alignement des champs sur des décalages qui ne sont pas des multiples de leur taille.

S’applique à