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 数据类型。 下面的示例对此进行了演示。 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 结构。

另请参阅