或者它总是保证对所有可能的Chars都是积极的吗?
答案 0 :(得分:10)
保证是非负面的。
char
是无符号 16位值。
来自C#4规范的第4.1.5节:
char
类型表示无符号的16位整数,其值介于0和65535之间。char
类型的可能值集对应于Unicode字符集。虽然char
与ushort
具有相同的表示形式,但并非所有允许在一种类型上允许的操作都会被允许。
答案 1 :(得分:2)
由于char
的范围是U + 0000到U + ffff,因此对Int32
的投射将始终为正。
答案 2 :(得分:2)
每个16位值的范围从十六进制0x0000到0xFFFF,并且是 存储在Char结构中。
答案 3 :(得分:0)
请参阅Microsoft的documentation
在那里你可以看到,Char是U + 0000到U + ffff范围内的16位值。如果将其强制转换为Int32,则应该没有负值。
答案 4 :(得分:0)
char
可以明确转换为ushort
,ushort
范围为0 to 65,535
,因此它始终为正