第十六章 數組

 數組:始終是應用類型、內存分配也是分配在堆上的。不管你數組中存放的類型是什麼比如:

Int[] ary=new int[100]; string[] ary2=new string[220];

1.所有數組類型都從System.Array抽象類隱式派生,後者又派生自System.Object。

2.所有數組隱式實現IEnumerableICollectionIList  (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家族所替代了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章