PackingSize Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje jeden ze dvou faktorů, které určují zarovnání paměti polí při zařazování typu.
Tento výčet podporuje bitové kombinace hodnot jeho členů.
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
- Dědičnost
- Atributy
Pole
| Name | Hodnota | Description |
|---|---|---|
| Unspecified | 0 | Velikost balení není zadána. |
| Size1 | 1 | Velikost balení je 1 bajt. |
| Size2 | 2 | Velikost balení je 2 bajty. |
| Size4 | 4 | Velikost balení je 4 bajty. |
| Size8 | 8 | Velikost balení je 8 bajtů. |
| Size16 | 16 | Velikost balení je 16 bajtů. |
| Size32 | 32 | Velikost balení je 32 bajtů. |
| Size64 | 64 | Velikost balení je 64 bajtů. |
| Size128 | 128 | Velikost balení je 128 bajtů. |
Poznámky
Velikost balení ovlivňuje zarovnání polí ve strukturách a třídách, jejichž organizace je LayoutKind.Sequential. Velikost balení je jedním ze dvou faktorů, které určují posun pole při zařazování struktury nebo třídy; druhým faktorem je efektivní velikost pole. Určení posunu pole:
Vypočítá minimální hodnotu posunu přidáním velikosti předchozího pole do posunu předchozího pole.
Vypočítá velikost přirozeného balení pole: Pokud je pole jednoduchým datovým typem, použijte velikost. Pokud je pole polem, použijte velikost prvku pole. Pokud je pole samotné struktury, porovnejte velikost balení této struktury s velikostí největšího pole v této struktuře a použijte menší ze dvou hodnot.
Vypočítá efektivní velikost balení porovnáním velikosti balení s přirozenou velikostí balení pole vypočítanou v kroku 2. Použijte menší ze dvou čísel.
Vypočítá posun. Posun je první umístění paměti, které je rovno nebo větší než minimum, a násobek efektivní velikosti balení vypočítané v kroku 3.
Note
Po výpočtu posunů pro všechna pole ve třídě nebo struktuře se přidá odsazení, aby celková velikost byla násobkem velikosti balení.
Například ve třídě obsahující a bytelong, použití velikosti Size1balení , posun byte pole je nula (0) a posun long pole je jeden (1). Pokud je Size4velikost balení , long pole má posun čtyři (4). Ve třídě obsahující dvě short pole s použitím libovolné velikosti balení je posun druhého short pole dva (2).
Note
Změna velikosti balení může ovlivnit výkon, pokud způsobí zarovnání polí na posunech, které nejsou násobky jejich velikosti.