一,c#中的值類型和引用類型
眾所周知在c#中有兩種基本類型,它們分別是值類型和引用類型;而每種類型都可以細分為如下類型:
二,值類型的裝箱和拆箱操作
1 int i = 5; 2 object o = i; 3 int j = (int)o;
4 Int16 y=(Int16)o;
三,泛型的出現(本節只簡單介紹泛型對裝箱和拆箱所起的作用,關於泛型的具體細節請參考下一篇文章)
1 static void Main(string[] args) 2 { 3 ArrayList dateList = new ArrayList { 4 DateTime.Now 5 }; 6 7 IList<DateTime> dateT = new List<DateTime> { 8 DateTime.Now 9 }; 10 }
使用ArrayList時,每添加一個時間都會進行一次裝箱操作,而使用List<DateTime>時就不會進行裝箱操作,從而提高應用程序的性能。
Queue<T>;
Stack<T>;
List<T>;
Dictionary<Tkey,Tvalue>;
HashSet<T>;
在使用這些集合之前我們必須要理解每一種集合的工作原理(沒事自己可以實現一下),了解每一種集合的適合場合,這樣才能寫出高效的代碼。
四,在設計時如何選擇類和結構體
在面試的時候,我們經常被問的一個問題(還有另外一個問題,如何選擇抽象類和接口,下次我會單獨聊聊這個問題),下面我們來聊聊在設計時應該如何選擇結構體和類
都說程序是一門注重實踐的學科,但是也只有熟悉理解了這些概論的東西,才能在實踐時寫出優秀的代碼,有不對或者不合理的地方歡迎在下面討論;