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
| 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:
Önceki alanın boyutunu önceki alanın uzaklığına ekleyerek uzaklık için en düşük değeri hesap edin.
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.
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.
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.