Char 数据类型 (Visual Basic)

保存 16 位(2 字节)码位,值的范围为 0 到 65535。 每个码位,或字符代码表示单个 Unicode 字符。

备注

在只需保存单个字符而无需保存 String 的标头时,请使用 Char 数据类型。 在有些情况下,可以使用 Char()(Char 元素数组)来保存多个字符。

Char 的默认值是码位为 0 的字符。

Unicode 字符

Unicode 的前 128 个码位 (0–127) 对应于标准美式键盘上的字母和符号 键盘。 这前 128 个码位与 ASCII 字符集定义的码位相同。 随后的 128 个码位(128 到 255)表示特殊字符,如拉丁字母、重音符号、货币符号以及分数。 Unicode 将其余的码位 (256-65535) 用于表示不同种类的符号,包括世界范围的各种文本字符、音调符号以及数学和技术符号。

可以对将 Char 变量使用 IsDigitIsPunctuation 这样的方法来确定其 Unicode 分类。

类型转换

Visual Basic 不会在 Char 类型和数值类型之间直接转换。 可以使用 AscAscW 函数将 Char 值转换为表示其码位的 Integer。 可以使用 ChrChrW 函数将 Integer 值转换为具有该码位的 Char。

如果打开了类型检查开关 (Option Strict 语句),则必须在单字符字符串后追加一个文本类型字符,以将其标识为 Char 数据类型。 下面的示例阐释了这一点。

Option Strict On
Dim charVar As Char
' The following statement attempts to convert a String literal to Char.
' Because Option Strict is On, it generates a compiler error.
charVar = "Z"
' The following statement succeeds because it specifies a Char literal.
charVar = "Z"C

编程提示

  • **负数。**Char 是一个无符号类型,不能表示负数。 在任何情况下都不应使用 Char 存放数值。

  • **互操作注意事项。**如果您使用的不是为 .NET Framework 编写的组件(如自动化或 COM 对象),请记住在其他环境中,字符类型具有不同的数据长度(8 位)。 若将一个 8 位参数传递给这样的组件,在新的 Visual Basic 代码中应将其声明为 Byte 而不是 Char。

  • **扩大。**Char 数据类型扩大至 String。 这意味着您可以将 Char 转换为 String,而不会遇到 System.OverflowException 错误。

  • **类型字符。**在单字符字符串后追加一个文本类型字符 C,可强制其转换为 Char 数据类型。 Char 不具有标识符类型字符。

  • Framework 类型。.NET Framework 中的对应类型是 System.Char 结构。

请参见

任务

如何:使用无符号类型优化正整数的存储 (Visual Basic)

如何:调用采用无符号类型的 Windows 函数 (Visual Basic)

参考

数据类型摘要 (Visual Basic)

System.Char

String 数据类型 (Visual Basic)

类型转换函数 (Visual Basic)

转换摘要 (Visual Basic)

Asc

AscW

Chr

ChrW

概念

有效使用数据类型 (Visual Basic)