2015-09-28 98 views
0

我正在学习C#,这对我来说听起来很奇怪... 为什么要添加到short类型我必须做一个显式的转换?使用短int int#

short x = 1, y = 1; 
short z = x + y; // Compile-time error 

明确的转换:

short z = (short) (x + y); // OK 
+1

32000 + 32000.两者都是短型,但结果超过短可以持有。 +运算符返回int,因此它可以处理多个short值。你必须再次存储它,但它会抛出异常,如果该值超过short.maxvalue –

+1

http://stackoverflow.com/questions/11853602/c-sharp-does-not-let-me-sum - 两个短裤到一个短 –

回答

1

显示编译错误,因为因为赋值运算符的右侧的算术表达式求值默认为int。所以你需要做类型转换。

虽然可以将plus操作数与其他数据类型(如long int double)一起使用,其中目标变量具有相同的存储大小或较大的存储大小,但由于short的大小较小,所以不能直接使用它。