Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt einen von zwei Faktoren an, die die Speicherausrichtung von Feldern bestimmen, wenn ein Typ gemarshallt wird.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Enumeration PackingSize
'Usage
Dim instance As PackingSize
[SerializableAttribute]
[ComVisibleAttribute(true)]
public enum PackingSize
[SerializableAttribute]
[ComVisibleAttribute(true)]
public enum class PackingSize
/** @attribute SerializableAttribute() */
/** @attribute ComVisibleAttribute(true) */
public enum PackingSize
SerializableAttribute
ComVisibleAttribute(true)
public enum PackingSize
Member
| Membername | Beschreibung | |
|---|---|---|
| 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 Byte. | |
| Size64 | Die Komprimierungsgröße ist 64 Byte. | |
| Size8 | Die Komprimierungsgröße ist 8 Byte. | |
| Unspecified | Die Komprimierungsgröße ist nicht angegeben. |
Hinweise
Die Komprimierungsgröße beeinflusst die Ausrichtung von Feldern in Strukturen und Klassen, deren Organisation LayoutKind.Sequential ist. 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:
Berechnen Sie den Mindestwert für den Offset, indem Sie die Größe und den Offset des vorhergehenden Felds addieren.
Berechnen Sie die eigentliche Komprimierungsgröße des Felds: Wenn es sich bei dem Feld um einen einfachen Datentyp handelt, verwenden Sie dessen 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 darstellt, 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.
Berechnen Sie die effektive Komprimierungsgröße, indem Sie die Komprimierungsgröße mit der in Schritt 2 berechneten eigentlichen Komprimierungsgröße des Felds vergleichen. Verwenden Sie die kleinere der beiden Zahlen.
Berechnen Sie den Offset. Beim Offset handelt es sich um den ersten Speicherort, der gleich dem oder größer als der Mindestwert ist und ein Vielfaches der in Schritt 3 berechneten effektiven Komprimierungsgröße beträgt.
Hinweis
Wenn die Offsets aller Felder in der Klasse oder Struktur berechnet worden sind, wird ein Leerraum hinzugefügt, sodass die Gesamtgröße ein Vielfaches der Komprimierungsgröße beträgt.
Wenn z. B. in einer Klasse ein byte und ein long enthalten sind und die Komprimierungsgröße Size1 beträgt, ist der Offset des byte-Felds null (0) und der Offset des long-Felds eins (1). Wenn die Komprimierungsgröße Size4 beträgt, besitzt das long-Feld den Offset vier (4). Wenn in einer Klasse zwei short-Felder enthalten sind, ist bei beliebiger Komprimierungsgröße der Offset des zweiten short-Felds zwei (2).
Hinweis
Das Ändern der Komprimierungsgröße kann die Leistung beeinträchtigen, wenn dadurch Felder an Offsets ausgerichtet werden, die kein Vielfaches ihrer Größe darstellen.
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0