在C#中可以将一个Char转换为Int32产生负值吗?

时间:2011-10-19 11:07:09

标签: c# casting

或者它总是保证对所有可能的Chars都是积极的吗?

5 个答案:

答案 0 :(得分:10)

保证是非负面的。

char无符号 16位值。

来自C#4规范的第4.1.5节:

  

char类型表示无符号的16位整数,其值介于0和65535之间。char类型的可能值集对应于Unicode字符集。虽然charushort具有相同的表示形式,但并非所有允许在一种类型上允许的操作都会被允许。

答案 1 :(得分:2)

由于char的范围是U + 0000到U + ffff,因此对Int32的投射将始终为正。

答案 2 :(得分:2)

  

每个16位值的范围从十六进制0x0000到0xFFFF,并且是   存储在Char结构中。

Char Structure - MSDN

答案 3 :(得分:0)

请参阅Microsoft的documentation

在那里你可以看到,Char是U + 0000到U + ffff范围内的16位值。如果将其强制转换为Int32,则应该没有负值。

答案 4 :(得分:0)

char可以明确转换为ushortushort范围为0 to 65,535,因此它始终为正