CharSet Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет, какой набор символов должны использовать упакованные строки.
public enum class CharSet
public enum CharSet
[System.Serializable]
public enum CharSet
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CharSet
type CharSet =
[<System.Serializable>]
type CharSet =
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CharSet =
Public Enum CharSet
- Наследование
- Атрибуты
Поля
Ansi | 2 | Маршалирует строки как многобайтовые символьные строки: системные значения по умолчанию — кодовая страница Windows (ANSI) в Windows и UTF-8 в Unix. |
Auto | 4 | Выполняет автоматический маршалинг строк способом, соответствующим целевой операционной системе. Дополнительные сведения см. в разделе Наборы символов и маршалирование. Хотя для среды CLR по умолчанию используется значение Auto, языки программирования могут переопределить это значение. Например, C# и Visual Basic по умолчанию помечают все методы и типы как Ansi. |
None | 1 | Это значение устарело и по поведению аналогично значению Ansi. |
Unicode | 3 | Маршалирует строки в виде 2-байтных символьных строк Юникода. |
Примеры
В следующем примере кода показано, как указать CharSet значение перечисления при применении StructLayoutAttribute к управляемому определению.
[StructLayout(LayoutKind::Sequential, CharSet=CharSet::Ansi)]
public ref struct MyPerson
{
public:
String^ first;
String^ last;
};
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]
public struct MyPerson
{
public String first;
public String last;
}
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)> _
Public Structure MyPerson
Public first As String
Public last As String
End Structure
Комментарии
Так как существует несколько неуправляемых строковых типов и только один управляемый строковый тип, необходимо использовать набор символов, чтобы указать способ маршалирования управляемых строк в неуправляемый код. Это перечисление, предоставляющее параметры кодировки DllImportAttribute , используется в и StructLayoutAttribute. Подробное описание поведения маршалинга строк и сопоставления имен, связанных с этим перечислением, см. в разделе Указание набора символов.