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
Size1 | 1 | Velikost balení je 1 bajt. |
Size128 | 128 | Velikost balení je 128 bajtů. |
Size16 | 16 | Velikost balení je 16 bajtů. |
Size2 | 2 | Velikost balení je 2 bajty. |
Size32 | 32 | Velikost balení je 32 bajtů. |
Size4 | 4 | Velikost balení je 4 bajty. |
Size64 | 64 | Velikost balení je 64 bajtů. |
Size8 | 8 | Velikost balení je 8 bajtů. |
Unspecified | 0 | Velikost balení není zadána. |
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í pro pole: Pokud je pole jednoduchým datovým typem, použijte velikost. Pokud je pole pole pole, použijte velikost prvku pole. Pokud je pole samotnou strukturou, 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ší z těchto 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.
Poznámka
Po výpočtu posunů pro všechna pole ve třídě nebo struktuře se přidá odsazení, aby celková velikost byla více velikostí balení.
Například ve třídě obsahující a byte
long
, pomocí velikosti Size1
balení , posun byte
pole je nula (0) a posun long
pole je jeden (1). Pokud je Size4
velikost 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).
Poznámka
Změna velikosti balení může ovlivnit výkon, pokud způsobí zarovnání polí na posunech, které nejsou násobky jejich velikosti.