顯式引用轉換包括:
●從對象到任何引用類型
●從類類型S到類類型T,其中S是T的基類。
●從基類型S到接口類型T,其中S不是密封類,而且沒有實現T。
●從接口類型S到類類型T,其中T不是密封類,而且沒有實現S。
●從接口類型S到接口類型T,其中S不是T的子接口。
從元素類型為Ts的數組類型S到元素類型為Tt的數組類型T的轉換,這種轉換需要滿足下列條件:
●S和T只有元素的數據類型不同,而維數相同。
●Ts和Tt都是引用類型。
●存在從Ts到Tt的顯式引用轉換。
●從System.Array到數組類型。
●從System.Delegate到代表類型。
●從System.ICloneable到數組類型或代表類型。
顯式引用轉換發生在引用類型之間,需要在運行時檢測以確保正確。
為了確保顯式引用轉換的正常執行,要求源變量的值必須是null或者它所引用的對象的類型可以被隱式引用轉換為目標類型。否則顯式引用轉換失敗,將拋出一個InvalidCastException異常。
不論隱式還是顯式引用轉換,雖然可能會改變引用值的類型,卻不會改變值本身。