Aracılığıyla paylaş


Blok Halinde Kopyalanabilir 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ğırma çağrılarından döndürülen yapıların kesilebilir türler olması gerekir. Platform çağrısı, dönüş türleri olarak bölünemez yapıları desteklemez.

Ad alanından System aşağıdaki türler kesilebilir türlerdir:

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

  • Bir tamsayı dizisi gibi tek boyutlu blittable ilkel tür 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, blok halindeki ilkel türlerin ve yalnızca yarıtlanabilir üyeleri içeren sınıfların dizileri , 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 sıralanır ve bağımsız değişkeni bir In/Out parametresi olarak sıralamak istiyorsanız ve InAttribute özniteliklerini uygulamanız OutAttribute 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 stili bir diziye veya öğesine SAFEARRAYdönüştürür.
System.Boolean 1 veya -1 olarak 1, 2 veya 4 baytlık bir değere true 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 değişkene veya arabirime dönüştürür.
Sistem.String Null başvuruda veya BSTR'de sonlandıran bir dizeye dönüştürür.
System.ValueType Sabit bellek düzenine sahip bir yapıya dönüştürür.
T[] C stili bir diziye veya öğesine SAFEARRAYdönüştürür.

Sınıf ve nesne türleri yalnızca COM birlikte çalışma tarafından desteklenir.

Ayrıca bkz.