C#泛型的理解和应用

我对事物的理解主要从三个方面入手(WWH),就是who is it, why we use it and how we use it?

1, Who is 泛型?

泛型是C#可复用编程的一个特色,按照高级编程书上写的,在C++ 中也有类似的,叫做模版。

泛型就是将类型参数化,也就是说不考虑数据的类型,不管是int, string,还是其他对象,泛型里的方法都可以使用,最典型的就是List<T>这个泛型,也是我最常用的,别的接触的没记住或者不多,自己定义泛型的几乎没有。

2, Why we use 泛型?
泛型的好处呢,有两条,1,提高代码的复用效率,比如说某些类型共享同一种方法,如果每个类型都这样写的话,就可能写的太多了,这个时候如果用泛型的话,就可以所有的类型复用同一种方法。2,保证了代码的类型安全。比如说List<int>这样的list类型,如果在里面加入了string类型的数据,则无法编译通过的,所以这样就保证了类型安全,注意,这里所说的类型安全意思是说同一个list的类型是一样的,如果不一样的话,就编译不通过,这样做的结果就是保证了这些类型的统一性。

3, How to use 泛型?

 首先需要定义一个节点类型,这个类型包括你想要的所有的共享方法,然后将这个类型封装到一个集成IEnumerabel接口列表中,这样不同类型就可以实现这些共享的方法了。

 

Tips

其实我最常用的是泛型方法,定义泛型方法的时候一定要记住加上List<T>,下面是我定义的泛型方法。可以作为一个参考。

1         public void Swip<T>(ref T x, ref T y)  //注意这个<T>
2         {
3             T temp;
4             temp = x;
5             x = y;
6             y = temp;
7         }
泛型方法,交换值

 

posted @ 2015-04-01 09:23  凝荷  阅读(161)  评论(0)    收藏  举报