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{}

}

发布了21 篇原创文章 · 获赞 8 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_40405758/article/details/80056829
今日推荐