2013年4月9日 星期二

c# 轉型

c# 對於型態定議很嚴格, 因為許多bug都是型態不同造成的

比如

int a ;
byte b ;

int 是指 -2,147,483,648 ~ 2,147,483,647  之間的數值都可以表現出來
byte 只能 表現 0~255 

所以我們可以想成


int 是 特大杯的星巴克

byte 是 小杯星巴克

如果我寫

b = a ;

那就是將 特大杯硬塞到小杯星巴克, 這樣很容易出現問題

所以c# 不允許這樣寫法存在

那如果硬是要這樣寫怎麼辦呢? 通融方法就是

b = (byte)a;

告訴c# 我知道有淺在風險存在, 但請讓我轉型