System.Runtime.InteropServices.CharSet Enumeration

Dictates which character set marshaled strings should use.


public enum CharSet


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.


Member NameDescription

Marshal strings as multiple-byte character strings.


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.


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


Marshal strings as Unicode 2-byte characters.


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