C#本身有內建很多的變數形態,轉型就是將某一型別的變數轉成另一個型別
而轉型又可分為顯式和隱式,怎麼區分重點是
1. 會不會有資料的損失
2. 會不會有exception的產生
如果都不會就可以使用隱式的型別轉換,例子說明如下
int x = 1234;
float y = x;
因為float有包含小數點,而且變數大小也比較大,所以將int的x放到float的y,完全符合上述的二個條件,所以可以使用隱式轉換.
所以可以看到將x塞到y裡,是直接做的,沒什麼轉型別的動作.
那換個方向來看,將float塞到int
float y = 1234.5678F;
int x = (int)y;
可以看到多加了個(int)轉型,當然你也可以使用Convert.ToInt來轉型別
float y = 1234.5678F;
int x = Convert.ToInt32(y);
這麼做是因為float轉為int,小數點會不見,符合第一個條件,所以要用顯式轉型
再看一個例子
float y = 12341234123412341234.5678F;
int x = Convert.ToInt32(y);
因為float的大小超過了int所能容納的大小,所以會報錯,這也是為什麼C#認為轉型有可能會有exception產生時,會要求用顯示轉型的原因
文章標籤
全站熱搜
留言列表