c#2.0新特性:(一)泛型(Generics)

來源:互聯網
上載者:User
為了提高應用程式的效率和可用性,C#2.0引入了泛型概念.C#泛型有些類似C++的摸版。
(一)特點  
      泛型具有以下功能特點:
     一、使用泛型可以定義型別安全的資料結構,而無需使用實際的資料類型。
     二、通過使用泛型,能夠將資料類型參數化,以此完成代碼重用的目標。這一參數可以應用在類、方法、結構、介面、委託等設計中。
     三、泛型可提供編譯期間的類型檢查,減少不必要的顯式類型轉換,減少不必要的裝箱操作,從而提高應用程式的運行效率。
(二)泛型集合
      泛型常用於集合應用中。在.NET2.0架構的類庫中,提供了一個新的命名空間System.Collections.Generic,其中包含了一些新的基於泛型的容器類,例如:System.Collections.Generic.Stack System.Collections.Generic.Dictionary、System.Collections.Generic.List、System.Collections.Generic.Queue等,這些類庫可以在集合中實現泛型。
      下面是一個Stack類具體的應用代碼:        //實列化Stack類
        System.Collections.Generic.Stack<string> stringStack=new System.Collections.Generic.Stack<string>();
        //添加資料
        stringStack.Push("常德");
        stringStack.Push("北京");
        stringStack.Push("武漢");
        //轉換為數組
        Array stringArray;
        stringArray=stringStack.ToArray();
        //顯示數組
        foreach(string s in stringArray)
        {
            Response.Write(s);
        }

      以上代碼中,首先執行個體化了一個Stack類的stringStack,並且設定其參數是string,這說明該類所實現堆棧的資料類型是string。然後,通過Stack類的Push方法壓入3個字串資料,並且使用ToArray方法,將堆棧中的資料轉換到一個數組stringArray中(此時,stringArray是一個字串數組)。最後,使用Response.Write( )方法將數組中的資料顯示出來(逆序顯示,這是堆棧的特性)。
      另外,如果要求堆棧中儲存的是int類型,那麼可以使用同樣的方法,只需要修改很少的內容即可實現。 
(三)泛型方法 
      在某些情況下,一個型別參數並不為整個類所必需,而只用於一個特定的方法中。這個情況竟法發上在建立一個需要泛型作為參數的方法時。
      一個泛型方法有一個或多個型別參數,並且在方法名後面由“<”和“>”限定符指定。這個型別參數可以用在參數利表、傳回值和方法體中。    public void StackPush<T>(Stack<T> stack, params T[] values)
    {
        foreach (T value in values)
        {
            stack.Push(value);
        }
    }

      使用這個方法,可以將多個元素壓入任何Stack<T>中。當調用一個泛型方法時,要在函數的調用中將型別參數放入角括弧中。範例程式碼如下:


        Stack<int> stack = new Stack<int>();
        StackPush<int>(stack, 1, 2, 3, 4);

      在上面的例子中,由於第一個正式參數類型是Stack<int>,並且後面的參數類型都是int,編譯器可以推斷型別參數一定是int,因此在調用泛型的StackPush方法時可以不用提供型別參數。
        Stack<int> stack = new Stack<int>();
        StackPush(stack, 1, 2, 3, 4);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.