PackingSize Enumeration

Definition

Gibt einen von zwei Faktoren an, die die Speicherausrichtung von Feldern bestimmen, wenn ein Typ gemarstet wird.

Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.

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
Vererbung
PackingSize
Attribute

Felder

Name Wert Beschreibung
Unspecified 0

Die Verpackungsgröße ist nicht angegeben.

Size1 1

Die Verpackungsgröße beträgt 1 Byte.

Size2 2

Die Verpackungsgröße beträgt 2 Byte.

Size4 4

Die Verpackungsgröße beträgt 4 Byte.

Size8 8

Die Verpackungsgröße beträgt 8 Byte.

Size16 16

Die Verpackungsgröße beträgt 16 Byte.

Size32 32

Die Verpackungsgröße beträgt 32 Byte.

Size64 64

Die Verpackungsgröße beträgt 64 Byte.

Size128 128

Die Verpackungsgröße beträgt 128 Byte.

Hinweise

Die Verpackungsgröße wirkt sich auf die Ausrichtung von Feldern in Strukturen und Klassen aus, deren Organisation lautet LayoutKind.Sequential. Die Verpackungsgröße ist einer von zwei Faktoren, die den Offset eines Felds bestimmen, wenn die Struktur oder Klasse gemarstet wird; der andere Faktor ist die effektive Größe des Felds. So bestimmen Sie den Offset eines Felds:

  1. Berechnen Sie den Minimalwert für den Offset, indem Sie die Größe des vorherigen Felds zum Offset des vorherigen Felds hinzufügen.

  2. Berechnen Sie die natürliche Verpackungsgröße für das Feld: Wenn das Feld ein einfacher Datentyp ist, verwenden Sie die Größe. Wenn es sich bei dem Feld um ein Array handelt, verwenden Sie die Größe eines Arrayelements. Wenn das Feld selbst eine Struktur ist, vergleichen Sie die Verpackungsgröße dieser Struktur mit der Größe des größten Felds in dieser Struktur, und verwenden Sie die kleineren der beiden Werte.

  3. Berechnen Sie die effektive Verpackungsgröße, indem Sie die Verpackungsgröße mit der natürlichen Verpackungsgröße des Felds vergleichen, die in Schritt 2 berechnet wird. Verwenden Sie die kleineren der beiden Zahlen.

  4. Berechnen des Offsets. Der Offset ist der erste Speicherspeicherort, der gleich oder größer als das Minimum ist, und ein Vielfaches der effektiven Packgröße, die in Schritt 3 berechnet wird.

Note

Nachdem Offsets für alle Felder in der Klasse oder Struktur berechnet wurden, wird der Abstand hinzugefügt, sodass die Gesamtgröße ein Vielfaches der Verpackungsgröße ist.

Beispielsweise ist in einer Klasse, die ein byte und ein long, mithilfe der Verpackungsgröße Size1, der Offset des byte Felds null (0) und der Offset des long Felds eins (1) ist. Wenn die Verpackungsgröße lautet Size4, weist das long Feld offset vier (4) auf. In einer Klasse, die zwei short Felder enthält, ist der Offset des zweiten short Felds mit einer beliebigen Verpackungsgröße zwei (2).

Note

Das Ändern der Verpackungsgröße kann sich auf die Leistung auswirken, wenn Felder auf Offsets ausgerichtet werden, die keine Vielfache ihrer Größe sind.

Gilt für: