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 yardımcısı tarafından özel işleme gerektirmez. Bu türler, yönetilen ve yönetilmeyen kodlar arasında geçirildiğinde dönüştürme gerektirmediğinden, blittable türleri 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ünebilir olmayan 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 blittable türleri içeren biçimlendirilmiş değer türleri (ve biçimlendirilmiş türler olarak sıralanmışlarsa 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ı kesilebilir değildir. Bu, tek başına kesilebilir nesnelere başvuru dizisi içerir. Ö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 OutAttribute özniteliklerini uygulamanız InAttribute gerekir.
Bazı yönetilen veri türleri yönetilmeyen bir ortamda farklı bir gösterim gerektirir. Bu bölünebilir olmayan 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ünebilir olmayan türlerdir.
Aşağıdaki tabloda ad alanından kesilebilir olmayan türler System 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.
Kesilebilir olmayan tür | Açıklama |
---|---|
System.Array | C stili bir diziye veya öğesine SAFEARRAY dö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. |
System.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 SAFEARRAY dönüştürür. |
Sınıf ve nesne türleri yalnızca COM birlikte çalışma tarafından desteklenir. Visual Basic, C# ve C++ içindeki ilgili türler için bkz. Sınıf Kitaplığına Genel Bakış.