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

Name Değer Description
Unspecified 0

Ambalaj boyutu belirtilmemiş.

Size1 1

Ambalaj boyutu 1 bayttır.

Size2 2

Paketleme boyutu 2 bayttır.

Size4 4

Paketleme boyutu 4 bayttır.

Size8 8

Paketleme boyutu 8 bayttır.

Size16 16

Paketleme boyutu 16 bayttır.

Size32 32

Paketleme boyutu 32 bayttır.

Size64 64

Paketleme boyutu 64 bayttır.

Size128 128

Paketleme boyutu 128 bayttır.

Açıklamalar

Paketleme boyutu, kuruluşu 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 en düşük değeri hesap edin.

  2. Alan için 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 etkili paketleme boyutunu hesap edin. İki sayının küçük kısmı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.

Note

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

Örneğin, ve içeren bytelongbir sınıfta, ambalaj boyutunu Size1kullanarak, 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 ambalaj boyutu kullanılarak ikinci short alanın uzaklığı ikidir (2).

Note

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

Şunlara uygulanır