PackingSize Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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 :
Calculez la valeur minimale du décalage en ajoutant la taille du champ précédent au décalage du champ précédent.
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.
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.
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 Size1
d’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.