1. 程式人生 > >C# 為何需要泛型集合list;,及其一般用法

C# 為何需要泛型集合list;,及其一般用法

初次接觸泛型list<T>時還不太能理解,隨著不斷地學習,初步地總結了一下list<T>泛型集合,本文將針對泛型集合提出三個問題,什麼是泛型?有了雜湊表,二維陣列,字典等型別,為何還需要泛型集合?它又有什麼強大的功能讓程式設計師愛不釋手?

在此之前,我們都知道無論是C#還是C,C++語言,它們的優點我就不再贅述,但是它們無外乎都有一個讓人頭痛不已的地方,那就是它們都是強型別的語言,值型別,引用型別,裝箱,拆箱,簡單的說就是不同型別的值不能直接賦值,必須是相同型別的值才能相互賦值,或者你通過強行轉換,為此,牛人開始思考,能不能有一種型別,可以避免這種情況,so,泛型便自然而然的誕生了。

編寫泛型程式碼意味著從可用的程式碼角度編寫程式碼庫。簡單來說,泛型是指利用一種特殊的語法,來編寫能夠被廣泛使重用的程式碼庫。也就是其優點是重複使用某段程式碼塊,一般來說,C#中類是基本單元,當類與泛型結合時會出現多麼神奇的效果呢下面將舉一個簡單的例子講講泛型在程式碼複用這塊的強大用途。

class NewContainer<item>

{

private  item_contained;

public  item MyProperty{

get{return _contained;}

}

set{_contained=value;}

}

在NewContainer識別符號後面是一對尖括號。在尖括號內是識別符號item。使用標誌符合尖括號來定義泛型。需要注意的是item不是一種型別,而是型別的佔位符,你可以把它想象成一個坑,然後具體放何種東西(型別的值)就可以不用管了。

下面是一個使用NewContainer型別的型別的例子

Newcontainer<int> container=new Newcontainer<int>();

container.MyProperty=2;

int  value=container.MyProperty;

其中Newcontainer型別在定義的時候在尖括號中使用了int型別。int型別在Newcontainer的定義中代替了佔位符item,資料成員被定義成int型別,同樣的,也可以是double,string等型別,也可以自定義的類型別,如Newcontainer<Person> person=new Newcontainer<Person>();其中Person是自定義的類

如:class Person{string name

int age;

public  string{}

}