Поделиться через


Преобразуемые типы .NET Compact Framework

Обновлен: Ноябрь 2007

Тип считается сопоставимым, если у него есть общее представление в управляемой и в неуправляемой памяти, и поэтому не требуется специальной обработки маршалером взаимодействия для преобразования в неуправляемый или управляемый код.

Сопоставимые типы в обеих платформах.

Следующие типы, определенные в пространстве имен System являются сопоставимыми типами и в .NET Framework, и в .NET Compact Framework:

Сопоставимыми являются и следующие комплексные типы:

  • Одномерные массивы сопоставимых типов.

  • Типы форматированных значений, содержащие только сопоставимые типы. Так как в .NET Compact Framework у всех структур и классов всегда последовательное размещение, у типа управляемых значений такое же размещение памяти, как и у неуправляемой структуры.

Сопоставимые типы, имеющиеся только в .NET Compact Framework

.NET Compact Framework предоставляет следующие сопоставимые типы (в связи с их реализацией в среде CLR).

  • Boolean

    Это значение является однобитным целым числом. В полной версии .NET Framework, маршалинг по умолчанию Boolean соответствует атрибуту MarshalAsAttribute(UnmanagedType.Bool), который использует четырехбитное целое число.

  • Char

    Это всегда символ Юникода (2 байта), но полная версия платформы .NET Framework может обрабатывать его либо как символ Юникода, либо как символ ANSI, в зависимости от атрибута MarshalAsAttribute или поля DllImportAttribute.CharSet.

  • String

    Он всегда обрабатывается как массив символов Юникода, но полная версия платформы .NET Framework может обрабатывать его либо как массив символов Юникода, либо как массив символов ANSI, либо как массив символов BSTR, в зависимости от атрибута MarshalAsAttribute или поля DllImportAttribute.CharSet.

См. также

Другие ресурсы

Поддержка маршалинга в .NET Compact Framework