有了前次float類型的教訓以後我開始復習C#的數據類型今天在網上發現一篇有意識的文章
short s=;
s = s + ;
和
short s=;
s += ;
這兩個表達式有什麼區別會報什麼錯誤?
還是用事實來說話測試
經測試
第一個會報錯錯誤 無法將類型int隱式轉換為short存在一個顯式轉換(是否缺少強制轉換?) E:\MVC\Test\Test\Formcs Test
第二個通過編譯運行正常
後來找到解釋
s = s + ; 由於 默認是int型的s是short的s+的結果默認是int的把int的結果賦值給short時會報錯損失精度了必須寫成 s = (short)(s+) 來強制轉化一下
s+=; 在編譯時已經明確最後要賦值給s即short型的所以會在內部自動進行轉換的
自動轉換一般從低的往高的轉換所以第一個會報錯
順便把C#的數據類型貼上大家一起復習
#是基於框架的他的基礎部分就是共享的通用類型系統(CTSCommon Type System)下面是C#和java數據類型的等價類型
c#數據
類型
java數據
類型
運行時
類型
大小
(字節)
范圍
描述
bool
boolean
Boolean
n/a
true or false
布爾值
byte
Byte
~
無符號整數
char
char
Char
x
~
xffff
Unicode字符
decimal
Decimal
~
十進制數字
double
double
Double
e~
e
雙精度
位數字
float
float
Single
e
~
e
單精度
位數字
int
int
Int
~
有符號整數
long
long
Int
~
有符號整數
sbyte
byte
SByte
~
有符號整數
short
short
Int
~
有符號整數
unit
UInt
~
無符號整數
ulong
UInt
~
無符號整數
ushort
UInt
~
無符號整數
在c#中所有書類型也都是System的一部分可以在其中引用如bool可以引用為SystemBoolean
From:http://tw.wingwit.com/Article/program/net/201311/11738.html