![](/img/trans.png)
[英]Difference between Char.IsDigit() and Char.IsNumber() in C#
[英]Difference between char in Java and C# (particular problem with (char)-1)
char x = (char)-1;
在Java中有效,但显示错误( 常量值计算中的溢出 )
我应该在C#中使用其他数据类型吗?
发生该错误是因为C#对文字(“常量计算”)更为精明。 在C#中可以做到...
int x = -1;
char c = (char)x;
int y = c;
// y is 0xffff, as per Java
但是,请注意0xFFFF是无效的Unicode字符 :)
快乐的编码。
使用unchecked
也会“起作用”:
unchecked {
char x = (char)-1;
}
这是C# char
类型的定义 ; 与Java中一样,它是16位Unicode字符。 如果您只是在寻找一个16字节的带符号值, 则可能需要short
。
您还可以使用unchecked
语句,例如unchecked { char x = (char)-1; }
unchecked { char x = (char)-1; }
; 但是,如果是我,例如使用-1
表示错误值或其他标记,我可能只使用: char x = (char)0xFFFF;
这将为您提供相同的结果,并提供一种检查无效值的方式,而无需绕过类型检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.