Blitfähige Typen in .NET Compact Framework
Aktualisiert: November 2007
Ein Typ gilt als blitfähig, wenn er im verwalteten und im nicht verwalteten Speicher die gleiche Darstellung hat, sodass keine spezielle Behandlung durch den Marshaller zum Konvertieren in nicht verwalteten oder verwalteten Code erforderlich ist.
Typen, die in beiden Frameworks blitfähig sind
Die folgenden im System-Namespace definierten Typen sind sowohl in der Vollversion von .NET Framework als auch in .NET Compact Framework blitfähig:
Die folgenden komplexen Typen sind ebenfalls blitfähig:
Eindimensionale Arrays von blitfähigen Typen.
Formatierte Werttypen, die nur blitfähige Typen enthalten. Da alle Strukturen und Klassen in .NET Compact Framework ein sequenzielles Layout aufweisen, hat der verwaltete Werttyp das gleiche Speicherlayout wie die nicht verwaltete Struktur.
Typen, die nur in .NET Compact Framework blitfähig sind
Aufgrund ihrer Implementierung in der Common Language Runtime sind die folgenden Typen in .NET Compact Framework blitfähig:
-
Dies ist eine ganze 1-Byte-Zahl. In der Vollversion von .NET Framework entspricht das Standardmarshalling für ein Boolean dem MarshalAsAttribute(UnmanagedType.Bool)-Attribut, für das ein 4-Byte-Ganzzahlwert verwendet wird.
-
Dies ist immer ein Unicode-Zeichen (2 Bytes), wohingegen die Vollversion von .NET Framework diesen Typ entweder als Unicode-Zeichen oder als ANSI-Zeichen behandeln kann, je nach dem MarshalAsAttribute-Attribut oder dem DllImportAttribute.CharSet-Feld.
-
Dies wird stets als Unicode-Array behandelt, wohingegen die Vollversion von .NET Framework diesen Typ entweder als Unicode- oder ANSI-Array bzw. als BSTR-Typ behandeln kann, je nach dem MarshalAsAttribute-Attribut oder dem DllImportAttribute.CharSet-Feld.