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
- Наследование
- Атрибуты
Поля
| Имя | Значение | Описание |
|---|---|---|
| None | 1 | Это значение устарело и имеет то же поведение, что Ansiи . |
| Ansi | 2 | Маршалирование строк в виде строк с несколькими байтами: кодовая страница Windows (ANSI) по умолчанию на Windows и UTF-8 в Unix. |
| Unicode | 3 | Маршалирование строк в виде строк символов Юникода 2-байтов. |
| Auto | 4 | Автоматически маршалирует строки для целевой операционной системы. Дополнительные сведения см. в разделе Charsets и маршалинг . Хотя по умолчанию используется Autoсреда CLR, языки могут переопределить этот параметр по умолчанию. Например, по умолчанию C# и Visual Basic пометить все методы и типы как Ansi. |
Примеры
В следующем примере кода показано, как указать 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. Подробное описание поведения сопоставления строк и сопоставления имен, связанных с этим перечислением, см. в разделе "Указание набора символов".