PackingSize Sabit listesi
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
- Ö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:
Önceki alanın boyutunu önceki alanın uzaklığına ekleyerek uzaklık için en küçük değeri hesap edin.
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, o 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.
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.
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 Size1
kullanan ve içeren byte
bir long
sı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.