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
数据类型。 下面的示例对此进行了演示。 charVar
变量的第一个赋值生成编译器错误 BC30512,因为 Option Strict
处于打开状态。 第二个赋值成功编译,因为 c
文本类型字符将文本标识为 Char
值。
Option Strict On
Module CharType
Public Sub Main()
Dim charVar As Char
' This statement generates compiler error BC30512 because Option Strict is On.
charVar = "Z"
' The following statement succeeds because it specifies a Char literal.
charVar = "Z"c
End Sub
End Module
编程提示
负数。
Char
是无符号类型,不能表示负值。 在任何情况下,不应使用Char
来保存数值。互操作注意事项。 如果与不是为 .NET Framework 编写的组件(如自动化或 COM 对象)交互,请记住,在其他环境中字符类型具有不同的数据宽度(8 位)。 如果将一个 8 位自变量传递给此类组件,请在新的 Visual Basic 代码中将其声明为
Byte
而不是Char
。Widening。
Char
数据类型加宽到String
。 这意味着,可以将Char
转换为String
,而不会遇到 System.OverflowException。类型字符。 将文本类型字符
C
追加到单字符字符串文本会将其强制转换为Char
数据类型。Char
不具有标识符类型字符。Framework 类型。 .NET Framework 中的对应类型是 System.Char 结构。