隱式參考轉換發生在參考類型之間,且保證型別安全。主要包含以下類別:
objectS → 類別 T(其中 S 繼承自 T)S → 介面 T(其中 S 實作 T)S → 介面 T(其中 T 是 S 的父介面)從元素類型為 TS 的陣列類型 S → 元素類型為 TT 的陣列類型 T,需滿足:
S 與 T 維度相同,僅元素類型不同TS 與 TT 皆為參考類型TS 到 TT 的隱式參考轉換System.ArraySystem.DelegateSystem.ICloneablenull → 任意參考類型float[] float_arr = new float[10];
int[] int_arr = new int[10];
float_arr = int_arr; // 編譯錯誤:元素為值類型,無隱式參考轉換
class Class1 {}
class Class2 : Class1 {}
Class1[] class1_arr = new Class1[10];
Class2[] class2_arr = new Class2[10];
class1_arr = class2_arr; // 合法:Class2 繼承 Class1,元素為參考類型
float[] → System.Single[]
double[] → System.Double[]
sbyte[] → System.SByte[]
byte[] → System.Byte[]
ushort[] → System.UInt16[]
int[] → System.Int32[]
long[] → System.Int64[]
string[] → System.String[]
理解隱式參考轉換,是掌握 C# 多型與泛型協變/逆變的基石。