【发布时间】:2015-12-25 08:38:24
【问题描述】:
我正在学习 C#,这对我来说听起来很奇怪......
为什么要添加到short 类型我要进行显式转换?
short x = 1, y = 1;
short z = x + y; // Compile-time error
显式演员:
short z = (short) (x + y); // OK
【问题讨论】:
-
32000 + 32000。两者都是空头类型,但结果超出空头所能承受的范围。 + 运算符返回 int,因此它可以处理的不仅仅是短值。您必须再次将其转换为short,但如果该值大于short.maxvalue,它将引发异常