Char 结构
表示一个 Unicode 字符。
**命名空间:**System
**程序集:**mscorlib(在 mscorlib.dll 中)
语法
声明
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Structure Char
Implements IComparable, IConvertible, IComparable(Of Char), _
IEquatable(Of Char)
用法
Dim instance As Char
[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct Char : IComparable, IConvertible, IComparable<char>,
IEquatable<char>
[SerializableAttribute]
[ComVisibleAttribute(true)]
public value class Char : IComparable, IConvertible, IComparable<wchar_t>,
IEquatable<wchar_t>
/** @attribute SerializableAttribute() */
/** @attribute ComVisibleAttribute(true) */
public final class Char extends ValueType implements IComparable, IConvertible,
IComparable<char>, IEquatable<char>
JScript 支持使用结构,但不支持进行新的声明。
备注
.NET Framework 使用 Char 结构表示 Unicode 字符。Unicode 标准使用称为码位的唯一的 21 位标量数字标识每个 Unicode 字符,并定义了 UTF-16 编码格式,这一格式指定如何将码位编码为一个或多个 16 位值的序列。每个 16 位值的范围为十六进制的 0x0000 到 0xFFFF,并存储在 Char 结构中。Char 对象的值是其 16 位数字(序号)值。
String 对象是 Char 结构的序列集合,用于表示文本字符串。多数 Unicode 字符可由一个 Char 对象表示,但编码为基字符、代理项对和/或组合字符序列的字符由多个 Char 对象表示。因此,String 对象中的 Char 结构不一定与单个 Unicode 字符等效。
有关 Unicode 标准的更多信息,请参见 Unicode 主页。
功能
Char 结构提供了执行以下操作的方法:比较 Char 对象;将当前 Char 对象的值转换为其他类型的对象;确定 Char 对象的 Unicode 类别。
使用 ConvertFromUtf32 方法可将码位转换为字符串。使用 ConvertToUtf32 方法可将 Char 对象或 Char 对象的代理项对转换为码位。
使用 GetUnicodeCategory 方法可获取字符的 Unicode 类别。使用 IsControl、IsDigit、IsHighSurrogate、IsLetter、IsLetterOrDigit、IsLower、IsLowSurrogate、IsNumber、IsPunctuation、IsSeparator、IsSurrogate、IsSurrogatePair、IsSymbol、IsUpper 和 IsWhiteSpace 方法可确定字符是否属于特定的 Unicode 类别,如数字、字母、标点、控制字符等。
使用 GetNumericValue 方法可将表示数字的 Char 对象转换为数值类型。使用 Parse 和 TryParse 可将字符串中的字符转换为 Char 对象。使用 ToString 可将 Char 对象转换为 String 对象。
使用 ToLower、ToLowerInvariant、ToUpper 和 ToUpperInvariant 方法可更改 Char 对象的大小写。
接口实现
此类型实现了 IConvertible、IComparable 和 IComparable 接口。使用 Convert 类进行转换,而不是使用此类型的 IConvertible 显式接口成员实现。
示例
下面的代码示例演示 Char 中的某些方法。
imports System
Module CharStructure
Public Sub Main()
Dim chA As Char
chA = "A"c
Dim ch1 As Char
ch1 = "1"c
Dim str As String
str = "test string"
Console.WriteLine(chA.CompareTo("B"c)) ' Output: "-1" (meaning 'A' is 1 less than 'B')
Console.WriteLine(chA.Equals("A"c)) ' Output: "True"
Console.WriteLine(Char.GetNumericValue(ch1)) ' Output: "1"
Console.WriteLine(Char.IsControl(Chr(9))) ' Output: "True"
Console.WriteLine(Char.IsDigit(ch1)) ' Output: "True"
Console.WriteLine(Char.IsLetter(","c)) ' Output: "False"
Console.WriteLine(Char.IsLower("u"c)) ' Output: "True"
Console.WriteLine(Char.IsNumber(ch1)) ' Output: "True"
Console.WriteLine(Char.IsPunctuation("."c)) ' Output: "True"
Console.WriteLine(Char.IsSeparator(str, 4)) ' Output: "True"
Console.WriteLine(Char.IsSymbol("+"c)) ' Output: "True"
Console.WriteLine(Char.IsWhiteSpace(str, 4)) ' Output: "True"
Console.WriteLine(Char.Parse("S")) ' Output: "S"
Console.WriteLine(Char.ToLower("M"c)) ' Output: "m"
Console.WriteLine("x"c.ToString()) ' Output: "x"
End Sub
End Module
using System;
public class CharStructureSample {
public static void Main() {
char chA = 'A';
char ch1 = '1';
string str = "test string";
Console.WriteLine(chA.CompareTo('B')); // Output: "-1" (meaning 'A' is 1 less than 'B')
Console.WriteLine(chA.Equals('A')); // Output: "True"
Console.WriteLine(Char.GetNumericValue(ch1)); // Output: "1"
Console.WriteLine(Char.IsControl('\t')); // Output: "True"
Console.WriteLine(Char.IsDigit(ch1)); // Output: "True"
Console.WriteLine(Char.IsLetter(',')); // Output: "False"
Console.WriteLine(Char.IsLower('u')); // Output: "True"
Console.WriteLine(Char.IsNumber(ch1)); // Output: "True"
Console.WriteLine(Char.IsPunctuation('.')); // Output: "True"
Console.WriteLine(Char.IsSeparator(str, 4)); // Output: "True"
Console.WriteLine(Char.IsSymbol('+')); // Output: "True"
Console.WriteLine(Char.IsWhiteSpace(str, 4)); // Output: "True"
Console.WriteLine(Char.Parse("S")); // Output: "S"
Console.WriteLine(Char.ToLower('M')); // Output: "m"
Console.WriteLine('x'.ToString()); // Output: "x"
}
}
using namespace System;
int main()
{
char chA = 'A';
char ch1 = '1';
String^ str = "test string";
Console::WriteLine( chA.CompareTo( 'B' ) ); // Output: "-1" (meaning 'A' is 1 less than 'B')
Console::WriteLine( chA.Equals( 'A' ) ); // Output: "True"
Console::WriteLine( Char::GetNumericValue( ch1 ) ); // Output: "1"
Console::WriteLine( Char::IsControl( '\t' ) ); // Output: "True"
Console::WriteLine( Char::IsDigit( ch1 ) ); // Output: "True"
Console::WriteLine( Char::IsLetter( ',' ) ); // Output: "False"
Console::WriteLine( Char::IsLower( 'u' ) ); // Output: "True"
Console::WriteLine( Char::IsNumber( ch1 ) ); // Output: "True"
Console::WriteLine( Char::IsPunctuation( '.' ) ); // Output: "True"
Console::WriteLine( Char::IsSeparator( str, 4 ) ); // Output: "True"
Console::WriteLine( Char::IsSymbol( '+' ) ); // Output: "True"
Console::WriteLine( Char::IsWhiteSpace( str, 4 ) ); // Output: "True"
Console::WriteLine( Char::Parse( "S" ) ); // Output: "S"
Console::WriteLine( Char::ToLower( 'M' ) ); // Output: "m"
Console::WriteLine( 'x' ); // Output: "x"
}
import System.* ;
public class CharStructureSample
{
public static void main(String[] args)
{
Character chA = new Character('A');
char ch1 = '1';
String str = "test string";
// Output: "-1" (meaning 'A' is 1 less than 'B')
Console.WriteLine(chA.compareTo(new Character('B')));
// Output: "True"
Console.WriteLine(chA.equals(new Character('A')));
// Output: "1"
Console.WriteLine(System.Char.GetNumericValue(ch1));
// Output: "True"
Console.WriteLine(Char.IsControl('\t'));
// Output: "True"
Console.WriteLine(System.Char.IsDigit(ch1));
// Output: "False"
Console.WriteLine(Char.IsLetter(','));
// Output: "True"
Console.WriteLine(Char.IsLower('u'));
// Output: "True"
Console.WriteLine(System.Char.IsNumber(ch1));
// Output: "True"
Console.WriteLine(Char.IsPunctuation('.'));
// Output: "True"
Console.WriteLine(Char.IsSeparator(str, 4));
// Output: "True"
Console.WriteLine(Char.IsSymbol('+'));
// Output: "True"
Console.WriteLine(Char.IsWhiteSpace(str, 4));
// Output: "S"
Console.WriteLine(Char.Parse("S"));
// Output: "m"
Console.WriteLine(Char.ToLower('M'));
// Output: "x"
Console.WriteLine(System.Convert.ToString('x'));
} //main
} //CharStructureSample
线程安全
该类型对于多线程操作是安全的。
平台
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0、1.0