<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      之前兩篇文檔講述了C#中的面向對象的概念,其實這個概念對于很多種語言都是通用的,只不過每種語言具體實現的過程方法不一樣,比如Java、C++、python等,這些都是很流行的面向對象的語言在編程語言排行榜中都是屬于前幾名的。面向對象中比較難以理解的就是多態的概念,多態我將留到后面的章節去講,現在繼續先學習好基本的一些語法理解好語意才能更好的理解。

       

      數組
      數組顧名思義就是一組同類數據元素的集合,數組不單單是數字的集合,可以是多種類型的,但是集合中元素必須是同一種數據類型,那么什么是同類數據的元素呢?在第一篇中有介紹C#中15中最常用的數據類型(類型還可以自己擴展),每種類型有最大值最小值,每一個值就相當于是一個元素了,打個比如int類型的數組那就只可以存儲int的類型的元素,如果在int類型中存儲string類型,那么編譯器或報錯,數組在C#中是最早出現的,在內存中是連續存儲的,所以它的索引速度非常快,下面來看一下如果聲明一個數組。

       

      這里使用int類型:

       1   //創建一個大小為3的數組
       2 
       3     int[] intArray = new int[3];
       4 
       5     //賦值
       6 
       7     intArray[0] = 1;
       8 
       9     intArray[1] = 2;
      10 
      11     intArray[2] = 3;
      12 
      13     //修改
      14 
      15   intArray[2]=4;

       

      但是在數組中存在一些不足的地方,比如在數組的兩個數據之間插入數據是很麻煩,在插入數組后面的所有元素都要往后退一位,而且在聲明數組的時候必須指定數組的長度,數組的長度過長,會造成內存的浪費,過長也會造成數據溢出的錯誤,針對數組的這些缺點,又推出了ArrayList對象來克服這些缺點。

       

      ArrayList

      在命名空間System.Collection中,ArrayLis存儲的對象元素是動態去分配的,根據需求去進行相應的擴容和收縮空間,所以在聲明ArrayLis對象時并不需要去指定它的長度。

       1 //聲明一個ArrayList對象
       2 ArrayList arrayList = new ArrayList();
       3 
       4 //新增數據
       5 arrayList.Add(123);
       6 arrayList.Add("Leon");
       7 
       8 //修改數據
       9 arrayList[1] = 32;
      10 
      11 //刪除
      12 arrayList.Remove(0);
      13 
      14 //插入數據
      15 arrayList.Insert(0, 445);

       

      從上面的例子中ArrayList好像是解決上面數組遺留下來的問題,當時當你實際編譯的時候就會遇到異常了,如果有在編譯器上實習輸入代碼編譯的同學會發現,arrayList.Add( )這個方法接受的是一個object的類型,那么當我在arrayList[0],這個位置賦值的時候就會出現一個裝箱拆箱所帶來的性能損耗,而且在我第二次使用Add時插入的是一個string類型的變量,那么同一個數組中出現兩種不一樣的數據類型,并且在編譯的時候是正常的,所以在編譯時不能檢查類型,在運行中就會出現錯誤。裝箱拆箱實際上就是object類型和其它類型之間的數據轉換所帶來的性能損耗,具體過程可以在網上查下資料。

       

      泛型List

      因為ArrayList存在不安全類型與裝箱拆箱的缺點,所以后面微軟又推出了泛型,List類和ArrayList類的用法相似,但是最關鍵的地方在于 List聲明集合的時候必須要指定數據對象的類型。

       1 //聲明List集合對象
       2 List<string> listString = new List<string>();
       3 
       4 //增加
       5 listString.Add("leon");
       6 
       7 //修改
       8 listString[0] = "newLeon";
       9 
      10 //刪除數據
      11 listString.RemoveAt(0);

       

      這里可以看到,List和ArrayList的用法差不多,區別就在于List在聲明的時候必須要指定數據對象的類型,這樣如果嘗試在listString中插入int類型的值編譯器就會報錯,在編譯時就可以避免一個類型安全的問題,和裝箱拆箱帶來的性能損耗。

       

      小結:

             數組的存儲容量是固定的,每次只能對一個值去進行操作,而且在兩個值之間插入一個元素的話很麻煩,不方便操作。

             ArrayList中雖然定義好的一套方法可以很方便的去操作數組,很好的刪除、插入元素,但是由于裝箱拆箱的過程會浪費很多資源,而且編譯時沒有提供一個安全類型的檢查,使得在一個有int類型的數組中允許插入其它類型的,比如string,這樣雖然在編譯時不會報錯,但是在運行時會發生異常。

             泛型List,泛型int類型是強類型,在編譯時會檢查類型,并且減少裝箱拆箱帶來的損耗。

      這里注意數組可以是多維度的但是,ArrayList和List始終只具有一個維度。

      posted on 2017-06-18 15:30  碼農改變世界lyf  閱讀(857)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲欧洲美洲无码精品va| 一区二区三区岛国av毛片| 绝顶丰满少妇av无码| 九九热精品视频在线免费| 国产一区二区日韩在线| 大陆一级毛片免费播放| 国产剧情91精品蜜臀一区| 日本三级理论久久人妻电影| 亚洲一区精品视频在线| 人妻内射一区二区在线视频| 国色精品卡一卡2卡3卡4卡在线 | 中文无码av一区二区三区| 内射干少妇亚洲69XXX| 色熟妇人妻久久中文字幕| 国产品精品久久久久中文| 福利一区二区在线视频| 国产精品无码无卡在线播放| 99RE6在线视频精品免费下载| 亚洲国内精品一区二区| 色伊人久久综合中文字幕| 亚洲国产高清第一第二区| 亚洲精品国模一区二区| 国产精品色一区二区三区| 亚洲婷婷综合色高清在线 | 国产综合久久99久久| 国产精品毛片一区二区| 偷拍精品一区二区三区| 精品人妻免费看一区二区三区| 99久久婷婷国产综合精品青草漫画| 国产精品无码制服丝袜| 日韩精品人妻av一区二区三区| 五月天免费中文字幕av| 欧美国产日产一区二区| 蜜桃草视频免费在线观看| 欧美大bbbb流白水| 久久精品久久黄色片看看| 亚洲熟妇无码爱v在线观看| 色偷一区国产精品| 青草成人精品视频在线看| av男人的天堂在线观看国产| 免费中文熟妇在线影片|