CharSet 枚举

定义

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

public enum CharSet
[System.Serializable]
public enum CharSet
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
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 struct MyPerson
{
    public String first;
    public String last;
}

注解

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

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

另请参阅