This documentation is archived and is not being maintained.

CharSet Enumeration

Dictates which character set marshaled strings should use.

[Visual Basic]
Public Enum CharSet
public enum CharSet
__value public enum CharSet
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 DllImportAttribute and StructLayoutAttribute. For a detailed description of the string marshaling and name matching behavior associated with this enumeration, see Specifying a Character Set.


Member name Description
Ansi Marshal strings as multiple-byte character strings.

Supported by the .NET Compact Framework.

Automatically marshal strings appropriately for the target operating system. The default is Unicode on Windows NT, Windows 2000, Windows XP, and the Windows Server 2003 family; the default is Ansi on Windows 98 and Windows Me.
None This value is obsolete and has the same behavior as CharSet.Ansi.

Supported by the .NET Compact Framework.

Marshal strings as Unicode 2-byte characters.


[Visual Basic, C#] The following code example shows how to specify a CharSet enumeration value when applying the StructLayoutAttribute to a managed definition.

[Visual Basic] 
< StructLayout( LayoutKind.Sequential, CharSet := CharSet.Ansi )> _
Public Structure MyPerson
   Public first As String
   Public last As String
End Structure 'MyPerson
[ StructLayout( LayoutKind.Sequential, CharSet=CharSet.Ansi )]
public struct MyPerson 
   public String first; 
   public String last;

[C++, JScript] No example is available for C++ or JScript. To view a Visual Basic or C# example, click the Language Filter button Language Filter in the upper-left corner of the page.


Namespace: System.Runtime.InteropServices

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework

Assembly: Mscorlib (in Mscorlib.dll)

See Also

System.Runtime.InteropServices Namespace | DllImportAttribute | StructLayoutAttribute