Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

PackingSize-Enumeration

 

Veröffentlicht: Oktober 2016

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

Namespace:   System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public enum PackingSize

MembernameBeschreibung
Size1

Die Komprimierungsgröße ist 1 Byte.

Size128

Die Komprimierungsgröße ist 128 Byte.

Size16

Die Komprimierungsgröße ist 16 Byte.

Size2

Die Komprimierungsgröße ist 2 Byte.

Size32

Die Komprimierungsgröße ist 32 Byte.

Size4

Die Komprimierungsgröße ist 4 Bytes.

Size64

Die Komprimierungsgröße ist 64 Bytes.

Size8

Die Komprimierungsgröße ist 8 Byte.

Unspecified

Die Komprimierungsgröße ist nicht angegeben.

Komprimierungsgröße beeinflusst die Ausrichtung von Feldern in Strukturen und Klassen, deren Organisation LayoutKind.Sequential. Die Komprimierungsgröße ist einer von zwei Faktoren, die den Offset eines Felds bestimmen, wenn die Struktur oder Klasse gemarshallt wird. der andere Faktor ist die effektive Größe des Felds. So bestimmen Sie den Offset eines Felds

  1. Berechnen Sie den Mindestwert für den Offset, indem Sie die Größe des vorhergehenden Feldes und den Offset des vorhergehenden Feldes addieren.

  2. Berechnen Sie die eigentliche Komprimierungsgröße für das Feld: Wenn das Feld einen einfachen Datentyp handelt, verwenden Sie die Größe. Wenn das Feld ein Array ist, verwenden Sie die Größe eines Arrayelements. Wenn das Feld selbst eine Struktur ist, vergleichen Sie die Komprimierungsgröße dieser Struktur mit der Größe des größten Felds in der Struktur, und verwenden Sie den kleineren der beiden Werte.

  3. Berechnen Sie die effektive Komprimierungsgröße, indem Sie die Komprimierungsgröße mit der eigentlichen Komprimierungsgröße des Felds in Schritt 2 berechneten vergleichen. Verwenden Sie den kleineren der beiden Zahlen.

  4. Berechnen Sie den Offset. Der Offset ist der erste Speicherort, der gleich oder größer als der Mindestwert ist und ein Vielfaches von die effektive Komprimierungsgröße in Schritt 3 berechneten.

System_CAPS_noteHinweis

Nach Offsets für alle Felder in der Klasse oder Struktur berechnet worden sind, wird die Auffüllung hinzugefügt, sodass die Gesamtgröße ein Vielfaches der Komprimierungsgröße ist.

Z. B. in einer Klasse mit einer byte und ein long, Komprimierungsgröße Größe Size1, den Offset des der byte Feld ist NULL (0) und den Offset des der long Feld ist eins (1). Wenn die Komprimierungsgröße ist Size4, die long Feld offset verfügt über vier (4). In einer Klasse mit zwei short Felder bei beliebiger Komprimierungsgröße der Offset des zweiten short Feld ist zwei (2).

System_CAPS_noteHinweis

Ändern die Paketgröße kann die Leistung beeinträchtigen, wenn dadurch Felder an Offsets ausgerichtet werden, die ein Vielfaches von ihrer Größe nicht sind.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: