Blittable ve Kopyalanamaz Türler

Çoğu veri türü, hem yönetilen hem de yönetilmeyen bellekte ortak bir temsile sahiptir ve birlikte çalışma ara birimi tarafından özel işleme gerektirmez. Bu türler, yönetilen ve yönetilmeyen kod arasında geçirildiğinde dönüştürme gerektirmediği için blittable türler olarak adlandırılır.

Platform çağrılarından döndürülen yapıların doğrudan yönetilebilir türler olması gerekir. Platform çağrısı, dönüş türleri olarak bölünemez yapıları desteklemez.

System ad alanındaki aşağıdaki türler sabit türlerdir:

Aşağıdaki karmaşık türler de kesilebilir türlerdir:

  • Tek boyutlu blittable ilkel tür dizileri, örneğin tamsayı dizileri. Ancak, bir değişken dizili blittable türleri içeren bir tür kendi blittable değildir.
  • Yalnızca doğrudan aktarılabilir türler içeren biçimlendirilmiş değer türleri (ve biçimlendirilmiş türler olarak sıralandıklarında sınıflar). Biçimlendirilmiş değer türleri hakkında daha fazla bilgi için bkz . Değer türleri için varsayılan sıralama.

Nesne başvuruları blittable değildir. Ayrıca, tek başına blittable nesnelere başvuru dizisi de blittable değildir. Örneğin, kesilebilir bir yapı tanımlayabilirsiniz, ancak bu yapılara başvuru dizisi içeren bir kesilebilir tür tanımlayamazsınız.

İyileştirme olarak, yarıtlanabilir ilkel türlerin dizileri ve yalnızca yarıtlanabilir üyeler içeren sınıflar, hazırlama sırasında kopyalanması yerine sabitlenir. Çağıran ve çağıran aynı dairede olduğunda bu türler In/Out parametreleri olarak sıralanmış gibi görünebilir. Ancak, bu türler aslında In parametreleri olarak aktarılır ve bağımsız değişkeni bir In/Out parametresi olarak aktarmak istiyorsanız, InAttribute ve OutAttribute özniteliklerini uygulamanız gerekir.

Bazı yönetilen veri türleri yönetilmeyen bir ortamda farklı bir gösterim gerektirir. Bu bölünemez veri türleri, sıraya alınabilecek bir forma dönüştürülmelidir. Örneğin, yönetilen dizeler, sıralanabilmesi için önce dize nesnelerine dönüştürülmeleri gerektiğinden, bölünemez türlerdir.

Aşağıdaki tabloda System ad alanındaki nonblittable türler listelenmiştir. Statik bir yönteme veya sınıf örneğine başvuran veri yapıları olan temsilciler de bölünebilir değildir.

Bölünebilir olmayan tür Açıklama
System.Array C-tarzı bir diziye veya SAFEARRAY'ye dönüştürür.
System.Boolean true'yi 1 veya -1 olarak ayarlayarak 1, 2 veya 4 baytlık bir değere dönüştürür.
System.Char Unicode veya ANSI karakterine dönüştürür.
System.Class Sınıf arabirimine dönüştürür.
System.Object Bir varyanta veya arabirime dönüştürür.
Sistem.String Null referansla veya BSTR ile sonlanan bir dizeye dönüştürür.
System.ValueType Sabit bellek düzenine sahip bir yapıya dönüştürür.
T[] C tarzı bir diziye veya SAFEARRAY öğesine dönüştürür.

Sınıf ve nesne türleri yalnızca COM interoperasyon tarafından desteklenir.

Ayrıca bkz.