CharSet 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
决定封送字符串应使用的字符集。
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
注解
由于有多个非托管字符串类型,并且只有一种托管字符串类型,因此必须使用字符集来指定如何将托管字符串封送给非托管代码。 此枚举(提供字符集选项)由 DllImportAttribute 和 StructLayoutAttribute使用。 有关与此枚举关联的字符串封送处理和名称匹配行为的详细说明,请参阅 指定字符集。