.NET Compact Framework Blittable 型別
更新:2007 年 11 月
如果型別在 Managed 和 Unmanaged 記憶體中都有通用的表示方法,會被視為 Blittable,因此不需要封送處理器特殊的處理,就可以轉換至 Unmanaged 或 Managed 程式碼。
在兩種 Framework 中的 Blittable 型別
下列在 System 命名空間中定義的型別,在完整的 .NET Framework 和 .NET Compact Framework 中,都是 Blittable 型別:
下列複雜型別也是 Blittable:
Blittable 型別的一維陣列。
只包含 Blittable 型別的格式化實值型別。因為所有的結構與類別在 .NET Compact Framework 中永遠是循序配置,所以 Managed 實值型別與 Unmanaged 結構有相同的記憶體配置。
只有在 .NET Compact Framework 中的 Blittable 型別
.NET Compact Framework 因為其在 Common Language Runtime 中的實作,而提供下列 Blittable 型別:
-
這是 1 位元組的整數值。在完整的 .NET Framework 中,Boolean 的預設封送處理對應於 MarshalAsAttribute (UnmanagedType.Bool) 屬性,該屬性使用 4 位元組的整數值。
-
此型別一定是 Unicode 字元 (2 位元組),而完整的 .NET Framework 可能會依據 MarshalAsAttribute 屬性或 DllImportAttribute.CharSet 欄位,將此型別視為 Unicode 字元或 ANSI 字元。
-
此型別永遠會被視為 Unicode 陣列,而 .NET Framework 可能會依據 MarshalAsAttribute 屬性或 DllImportAttribute.CharSet 欄位,將此型別視為 Unicode 或 ANSI 陣列,或是 BSTR。