Char 数据类型 (Visual Basic)

更新:2007 年 11 月

保存无符号的 16 位(双字节)码位,其值的范围从 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 类型和数值类型之间直接转换。可以使用 Asc、AscW 函数 将 Char 值转换为表示其码位的 Integer。可以使用 Chr、ChrW 函数 将 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 结构。

请参见

任务

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

如何:调用采用无符号类型的 Windows 函数

概念

有效使用数据类型

参考

数据类型摘要 (Visual Basic)

System.Char

String 数据类型 (Visual Basic)

类型转换函数

转换摘要

Asc、AscW 函数

Chr、ChrW 函数