CharSet Enumeración

Definición

Indica qué juego de caracteres deben utilizar las cadenas cuya referencia se va calcular.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
Herencia
Atributos

Campos

Ansi 2

Serializa cadenas como cadenas de caracteres de varios bytes: la página de códigos de Windows (ANSI) predeterminada del sistema en Windows y UTF-8 en Unix.Marshal strings as multiple-byte character strings: the system default Windows (ANSI) code page on Windows, and UTF-8 on Unix.

Auto 4

Calcula automáticamente las referencias de las cadenas como corresponde al sistema operativo de destino.Automatically marshal strings appropriately for the target operating system. Vea Juegos de caracteres y serialización para conocer los detalles.See Charsets and marshaling for details. Aunque el valor predeterminado de Common Language Runtime es Auto, los lenguajes pueden invalidar este valor predeterminado.Although the common language runtime default is Auto, languages may override this default. Por ejemplo, de manera predeterminada C# y Visual Basic marcan todos los métodos y tipos como Ansi.For example, by default C# and Visual Basic mark all methods and types as Ansi.

None 1

Este valor ha quedado obsoleto y se comporta del mismo modo que Ansi.This value is obsolete and has the same behavior as Ansi.

Unicode 3

Calcula referencias de las cadenas como cadenas de caracteres Unicode de 2 bytes.Marshal strings as Unicode 2-byte character strings.

Ejemplos

En el ejemplo de código siguiente se muestra cómo CharSet especificar un valor de enumeración al aplicar a una definición administrada. StructLayoutAttributeThe 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

Comentarios

Dado que hay varios tipos de cadena no administrada y solo un tipo de cadena administrada, debe usar un juego de caracteres para especificar cómo se deben serializar las cadenas administradas en código no administrado.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. Esta enumeración, que proporciona opciones de juego de caracteres, DllImportAttribute se StructLayoutAttributeusa en y.This enumeration, which provides character set options, is used by DllImportAttribute and StructLayoutAttribute. Para obtener una descripción detallada de la serialización de cadenas y el comportamiento de coincidencia de nombres asociados a esta enumeración, vea especificar un juego de caracteres.For a detailed description of the string marshaling and name matching behavior associated with this enumeration, see Specifying a Character Set.

Se aplica a

Consulte también: