PackingSize Sabit listesi

Tanım

Bir tür sıralandığında alanların bellek hizalamasını belirleyen iki faktörden birini belirtir.

Bu sabit listesi, üyeleri için bit düzeyinde karşılaştırmayı destekler.

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
Devralma
PackingSize
Öznitelikler

Alanlar

Size1 1

Ambalaj boyutu 1 bayttır.

Size128 128

Paketleme boyutu 128 bayttır.

Size16 16

Paketleme boyutu 16 bayttır.

Size2 2

Paketleme boyutu 2 bayttır.

Size32 32

Paketleme boyutu 32 bayttır.

Size4 4

Paketleme boyutu 4 bayttır.

Size64 64

Paketleme boyutu 64 bayttır.

Size8 8

Paketleme boyutu 8 bayttır.

Unspecified 0

Paketleme boyutu belirtilmemiş.

Açıklamalar

Paketleme boyutu, yapısı LayoutKind.Sequentialolan yapılardaki ve sınıflardaki alanların hizalamasını etkiler. Paketleme boyutu, yapı veya sınıf sıralandığında alanın uzaklığını belirleyen iki faktörden biridir; diğer faktör, alanın etkin boyutudur. Bir alanın uzaklığını belirlemek için:

  1. Önceki alanın boyutunu önceki alanın uzaklığına ekleyerek uzaklık için minimum değeri hesap edin.

  2. Alanın doğal paketleme boyutunu hesaplama: Alan basit bir veri türüyse, boyutu kullanın. Alan bir diziyse, dizi öğesinin boyutunu kullanın. Alanın kendisi bir yapıysa, bu yapının paketleme boyutunu bu yapıdaki en büyük alanın boyutuyla karşılaştırın ve iki değerin küçüklüğünü kullanın.

  3. 2. adımda hesaplanan ambalaj boyutunu alanın doğal ambalaj boyutuyla karşılaştırarak etkin paketleme boyutunu hesap edin. İki sayının küçük olanını kullanın.

  4. Uzaklığı hesapla. Uzaklık, minimuma eşit veya ondan büyük olan ilk bellek konumudur ve 3. adımda hesaplanan etkin paketleme boyutunun katıdır.

Not

Sınıf veya yapıdaki tüm alanlar için uzaklıklar hesaplandıktan sonra, genel boyutun paketleme boyutunun katı olması için doldurma eklenir.

Örneğin, paketleme boyutunu Size1kullanan ve içeren byte bir longsınıfta, alanın uzaklığı byte sıfır (0) ve alanın uzaklığı long bir (1) olur. Ambalaj boyutu ise Size4, long alanın dört (4) uzaklığı vardır. İki alan içeren short bir sınıfta, herhangi bir paketleme boyutu kullanılarak ikinci short alanın uzaklığı ikidir (2).

Not

Alanların boyutlarının katları olmayan uzaklıklara hizalanması durumunda, paketleme boyutunun değiştirilmesi performansı etkileyebilir.

Şunlara uygulanır