數組:始終是應用類型、內存分配也是分配在堆上的。不管你數組中存放的類型是什麼比如:
Int[] ary=new int[100]; string[] ary2=new string[220];
1.所有數組類型都從System.Array抽象類隱式派生,後者又派生自System.Object。
2.所有數組隱式實現IEnumerable、ICollection、IList (System.Array也實現這三個接口)
3.泛型接口:
所有數組都會被CLR實現 泛型接口。
IEnumerable<T>,ICollection<T>、IList<T> T 如果是引用類型,那麼CLR也會對 T的基類型實現泛型接口,
比如剛剛定義的: ary2 CLR會爲他實現IEnumerable<string>,ICollection<string>、IList<string>同時也會爲基類型的泛型接口
IEnumerable<Object>,ICollection<Object>、IList<Object> 等,
但是呢要是 T是值類型比如剛定義的ary
那麼僅僅是實現了IEnumerable<int>,ICollection<int>、IList<int> (有的網友認爲不會產生這個接口實際上呢是有的)
4.數組分類:一維數組、多維數組、交錯數組(沒用過~~)
5.數組類型轉化:要求維度相同、非值類型(值類型通過copy實現)
6.數組傳遞返回:實參實際上傳遞的是引用、出參可以是null 或者new int[0]
數組基本不常用、被大量的List家族所替代了