2015-09-28 99 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的大小較小,所以不能直接使用它。