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 变量使用 IsDigit 和 IsPunctuation 这样的方法来确定其 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 结构。
请参见
任务
如何:使用无符号类型优化正整数的存储 (Visual Basic)
如何:调用采用无符号类型的 Windows 函数 (Visual Basic)