CharSet 枚举

定义

决定封送字符串应使用的字符集。

public enum class CharSet
public enum CharSet
[System.Serializable]
public enum CharSet
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CharSet
type CharSet = 
[<System.Serializable>]
type CharSet = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CharSet = 
Public Enum CharSet
继承
属性

字段

Ansi 2

将字符串封送为多字节字符串:对于 Windows 是系统默认的 Windows (ANSI) 代码页,对于 Unix 是 UTF-8。

Auto 4

针对目标操作系统适当地自动封送字符串。 有关详细信息,请参阅字符集和封送处理。 尽管公共语言运行时默认值为 Auto,但语言可替代此默认值。 例如,默认情况下,C# 和 Visual Basic 将所有方法和类型都标记为 Ansi

None 1

此值已过时,它与 Ansi 具有相同的行为。

Unicode 3

以 Unicode 2 字节字符的字符串的形式封送字符串。

示例

下面的代码示例演示如何在 CharSet 将 应用于 StructLayoutAttribute 托管定义时指定枚举值。

[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

注解

由于有多个非托管字符串类型,并且只有一种托管字符串类型,因此必须使用字符集来指定如何将托管字符串封送到非托管代码。 此枚举(提供字符集选项)由 DllImportAttributeStructLayoutAttribute使用。 有关与此枚举关联的字符串封送处理和名称匹配行为的详细说明,请参阅 指定字符集

适用于

另请参阅