(顯示/隱式)轉換
編譯器能夠在基元型別之間進行隱式或顯示轉換
int32 i =5
;int64 l
=i;
//從int32到int64的隱式轉換
如果兩個型別之間的轉換是"安全"的(安全是指轉換不會造成資料丟失),那麼c#允許在他們之間進行隱式轉換
如果轉換存在潛在的"安全"(轉換會引起丟失精度或數量級),c#要求進行顯示轉換,如
single s
=5.55
;int32 i1
=(int32) s;
//從single到int32的顯式轉換
checked 與 unchecked 基元型別操作
byte b
=100;b
=(byte) (b
+200
);
//運算溢位,結果為44
預設情況下clr不檢查溢位,可以通過增加/checked+編譯器命令開關或checked{}語句開啟溢位檢查,當檢查到有溢位時會丟擲
overflowexceptionb =
checked
((byte) (b
+200
));
//丟擲 overflowexception
下面**具有同樣功能:
checked
* system.decimal是乙個特殊的型別, checked 和 unchecked對他不起作用
C 隱式和顯示型別轉換
c 是在編譯時靜態型別化的,因此變數在宣告後就無法再次宣告,或者無法用於儲存其他型別的值,除非該型別可以轉換為變數的型別。1.隱式型別轉換 隱式轉換,就是系統預設的轉換,其本質是小儲存容量資料型別自動轉換為大儲存容量資料型別,該轉換是一種安全型別的轉換,不會導致資料丟失,因此不需要任何特殊的語法。下...
C 的隱式和顯示型別轉換
關於隱式轉換和顯示轉換,每種語言都有的,c 中當然也不例外。一般常用到的場合,一種是寫運算表示式的時候,要保持整體的資料型別一致和計算準確,比如有乙個變數a是int型,但是它是通過加減乘除得到的,那麼在運算中就要考慮用顯示轉換,除的運算需要轉換成float或double,再把結果強制轉換為int 再...
C 的隱式和顯示型別轉換
關於隱式轉換和顯示轉換,每種語言都有的,c 中當然也不例外。一般常用到的場合,一種是寫運算表示式的時候,要保持整體的資料型別一致和計算準確,比如有乙個變數a是int型,但是它是通過加減乘除得到的,那麼在運算中就要考慮用顯示轉換,除的運算需要轉換成float或double,再把結果強制轉換為int 再...