System.Runtime.InteropServices.CharSet Enumeration

Dictates which character set marshaled strings should use.

Syntax

[System.Runtime.InteropServices.ComVisible(true)]
public enum CharSet

Remarks

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. This enumeration, which provides character set options, is used by System.Runtime.InteropServices.DllImportAttribute and System.Runtime.InteropServices.StructLayoutAttribute. For a detailed description of the string marshaling and name matching behavior associated with this enumeration, see Specifying a Character Set.

Members

Member NameDescription
Ansi

Marshal strings as multiple-byte character strings.

Auto

Automatically marshal strings appropriately for the target operating system. The default is CharSet.Unicode on Windows NT, Windows 2000, Windows XP, and the Windows Server 2003 family; the default is CharSet.Ansi on Windows 98 and Windows Me. Although the common language runtime default is CharSet.Auto, languages may override this default. For example, by default C# marks all methods and types as CharSet.Ansi.

None

This value is obsolete and has the same behavior as CharSet.Ansi.

Unicode

Marshal strings as Unicode 2-byte characters.

Requirements

Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0