5

给定以下代码:

string source = "Some Unicode String";
foreach( char value in source ) {

    int y = (int)value;

}

从 char 到 int 的转换是否有可能失败(以及在什么情况下)?

4

2 回答 2

8

不,它不可能失败。char的范围从 0x0 到 0xFFFF (65535),而int的范围从 -2,147,483,648 到 2,147,483,647,所以 char 的所有值都在 int 的范围内。

于 2012-06-22T14:48:52.697 回答
8

charto的转换int不会失败,具有任何char价值。

来自.NET 4.0 参考

.NET Framework 使用 Char 结构来表示 Unicode 字符。Unicode 标准用一个称为代码点的唯一 21 位标量数字标识每个 Unicode 字符,并定义了 UTF-16 编码形式,该形式指定代码点如何编码为一个或多个 16 位值的序列。每个 16 位值的范围从十六进制 0x0000 到 0xFFFF,并存储在 Char 结构中。 Char 对象的值是它的 16 位数字(序数)值

于 2012-06-22T14:49:11.543 回答