CharSet CharSet CharSet CharSet Enum

Определение

Определяет, какой набор символов должны использовать упакованные строки.Dictates which character set marshaled strings should use.

public enum class CharSet
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum CharSet
type CharSet = 
Public Enum CharSet
Наследование
Атрибуты

Поля

Ansi Ansi Ansi Ansi 2

Маршалирует строки в виде строки многобайтовых символов.Marshal strings as multiple-byte character strings.

Auto Auto Auto Auto 4

Выполняет автоматический маршалинг строк способом, соответствующим целевой операционной системы.Automatically marshal strings appropriately for the target operating system. См. в разделе наборов символов и маршалинга подробные сведения.See Charsets and marshaling for details. Несмотря на то, что общий язык по умолчанию среды выполнения является Auto, языки программирования могут переопределить это поведение по умолчанию.Although the common language runtime default is Auto, languages may override this default. Например, C# и Visual Basic по умолчанию помечают все методы и типы как Ansi.For example, by default C# and Visual Basic mark all methods and types as Ansi.

None None None None 1

Это значение является устаревшим и действует так же, как Ansi.This value is obsolete and has the same behavior as Ansi.

Unicode Unicode Unicode Unicode 3

Маршалирует строки в виде строки двухбайтовых символов Юникода.Marshal strings as Unicode 2-byte character strings.

Примеры

В следующем примере кода показано, как указать CharSet значение перечисления, при применении StructLayoutAttribute к определению управляемого.The following code example shows how to specify a CharSet enumeration value when applying the StructLayoutAttribute to a managed definition.

[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

Комментарии

Поскольку есть несколько неуправляемых типов строк и только один управляемый строкового типа, необходимо использовать набор знаков ко укажите как управляемые строки маршалинга в неуправляемый код.Because there are several unmanaged string types and only one managed string type, you must use a character set to specify how managed strings should be marshaled to unmanaged code. Это перечисление, обеспечивающее параметры набора символов, используется DllImportAttribute и StructLayoutAttribute.This enumeration, which provides character set options, is used by DllImportAttribute and StructLayoutAttribute. Подробное описание маршалинга строк, а также именем, соответствующим поведение, связанное с этим перечислением, см. в разделе определение кодировки.For a detailed description of the string marshaling and name matching behavior associated with this enumeration, see Specifying a Character Set.

Применяется к

Дополнительно