Tipi copiabili di .NET Compact Framework
Aggiornamento: novembre 2007
Un tipo si dice copiabile se dispone di una rappresentazione comune sia nella memoria gestita che in quella non gestita e non deve essere pertanto gestito in modo particolare da parte del gestore del marshalling, per effettuarne la conversione in codice non gestito o gestito.
Tipi copiabili in entrambe le versioni di .NET Framework
I tipi elencati di seguito, definiti nello spazio del nome System, sono copiabili sia nella versione completa di .NET Framework sia in .NET Compact Framework:
Sono copiabili anche i seguenti tipi complessi:
Matrici unidimensionali di tipi copiabili.
Tipi valore formattati contenenti solo tipi copiabili. Poiché in .NET Compact Framework tutte le strutture e le classi hanno sempre un layout sequenziale, il tipo valore gestito ha lo stesso layout in memoria della struttura non gestita.
Tipi copiabili specifici di .NET Compact Framework
In .NET Compact Framework sono disponibili i seguenti tipi copiabili, poiché sono implementati in Common Language Runtime:
-
Si tratta di un valore integer a 1 byte. Nella versione completa di .NET Framework il marshalling predefinito per un oggetto Boolean corrisponde all'attributo MarshalAsAttribute(UnmanagedType.Bool) che utilizza un valore integer da 4 byte.
-
Si tratta sempre di un carattere Unicode da 2 byte, mentre nella versione completa di .NET Framework può essere sia un carattere Unicode sia un carattere ANSI a seconda dell'attributo MarshalAsAttribute o del campo DllImportAttribute.CharSet.
-
Questo tipo è sempre gestito come una matrice Unicode, mentre in .NET Framework può essere gestito come una matrice Unicode o ANSI o un tipo BSTR, a seconda dell'attributo MarshalAsAttribute o del campo DllImportAttribute.CharSet.