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 变量使用 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 结构。