標籤:相同 裝箱 long 對象 包括 UI 條件 資料 執行
隱式轉換:
隱式轉換就是系統預設的、不需要加以聲明就可以進行的轉換。在隱式轉換過程中,編譯器無需對轉換進行詳細檢查就能夠安全地執行轉換。
比如從int類型轉換到long類型就是一種隱式轉換。隱式轉換一般不會失敗,轉換過程中也不會導致資訊丟失。
比如:
int i=10;
long l=i;
裝箱轉換實際上就是一種隱式類型轉換。在本節,我們還將講解以下隱式轉換的規則:
隱式數值轉換
隱式數值轉換包括以下幾種:
●從sbyte類型到short,int,long,float,double,或decimal類型。
●從byte類型到short,ushort,int,uint,long,ulong,float,double,或decimal類型。
●從short類型到int,long,float,double,或decimal類型。
●從ushort類型到int,uint,long,ulong,float,double,或decimal類型。
●從int類型到long,float,double,或decimal類型。
●從uint類型到long,ulong,float,double,或decimal類型。
●從long類型到float,double,或decimal類型。
●從ulong類型到float,double,或decimal類型。
●從char類型到ushort,int,uint,long,ulong,float,double,或decimal類型。
●從float類型到double類型。
其中,從int,uint,或long到float以及從long到double的轉換可能會導致精度下降,但決不會引起數量上的丟失。其它的隱式數值轉換則不會有任何資訊丟失。
顯式轉換:
隱式引用轉換包括以下幾類:
●從任何參考型別到物件類型的轉換
●從類類型s到類類型t的轉換,其中s是t的衍生類別。
●從類類型s
到介面類型t的轉換,其中類s實現了介面t。
●從介面類型s到介面類t的轉換,其中t是s的父介面。
從元素類型為Ts的數群組類型S向元素類型為Tt的數群組類型T轉換,這種轉換需要滿足下列條件:
●S和T只有元素的資料類型不同,但它們的維數相同。
淺談c#中的類型轉換