Compartir a través de


Enumeración CharSet

 

Publicado: octubre de 2016

Indica qué juego de caracteres deben usar las cadenas con referencias calculadas.

Espacio de nombres:   System.Runtime.InteropServices
Ensamblado:  mscorlib (en mscorlib.dll)

Sintaxis

[SerializableAttribute]
[ComVisibleAttribute(true)]
public enum CharSet
[SerializableAttribute]
[ComVisibleAttribute(true)]
public enum class CharSet
[<SerializableAttribute>]
[<ComVisibleAttribute(true)>]
type CharSet
<SerializableAttribute>
<ComVisibleAttribute(True)>
Public Enumeration CharSet

Miembros

Nombre de miembro Descripción
Ansi

Calcular referencias de cadenas como cadenas de caracteres de varios bytes.

Auto

Calcula automáticamente las referencias de cadenas de forma apropiada para el sistema operativo de destino. El valor predeterminado es Unicode en Windows NT, Windows 2000, Windows XP y la familia Windows Server 2003; el valor predeterminado es Ansi en Windows 98 y Windows Millennium Edition. Aunque el valor predeterminado de common language runtime es Auto, los lenguajes pueden invalidar este valor predeterminado. Por ejemplo, de manera predeterminada C# marca todos los métodos y tipos como Ansi.

None

Este valor está obsoleto y tiene el mismo comportamiento que CharSet.Ansi.

Unicode

Calcular referencias de cadenas como caracteres de 2 bytes de Unicode.

Comentarios

Dado que hay varios tipos de cadena no administrada y solo tipo de cadena administrada, debe utilizarse un juego de caracteres para especificar cadenas administradas cómo deben calcularse a código no administrado. Utiliza esta enumeración, que proporciona opciones de juego de caracteres, DllImportAttribute y StructLayoutAttribute. Para obtener una descripción detallada del cálculo de referencias de cadena y nombre coincide con el comportamiento asociado con esta enumeración, consulte Specifying a Character Set.

Ejemplos

En el ejemplo de código siguiente se muestra cómo especificar un CharSet el valor de enumeración al aplicar el StructLayoutAttribute a una definición administrada.

[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
[StructLayout(LayoutKind::Sequential, CharSet=CharSet::Ansi)]
public ref struct MyPerson
{
public:
    String^ first;
    String^ last;
};

Información de versión

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1

Ver también

DllImportAttribute
StructLayoutAttribute
Espacio de nombres System.Runtime.InteropServices

Volver al principio