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產生時,會要求用顯示轉型的原因

arrow
arrow

    痞客興 發表在 痞客邦 留言(0) 人氣()