参考博文出处:http://www.360doc.com/content/11/1116/11/130258_164743728.shtml

在学习C/C++中没有接触过泛型,在C#的学习中遇到了泛型,刚开始对泛型很陌生,现在我们来走进了解泛型吧!

泛型的出现是为了解决代码重复!

举个最简单的例子,要给一串数组排序,如果是整型数组我们一般会这么写:

1 public void sort(int[]a){
2 ...
3 }


而如果是char型我们又只能把排序函数写成:

1 public void sort(char[]a){
2 ...
3 }

为了满足不同类型的数组,我们往往需要写多个函数,但是函数里面的操作都是一样的,为了解决这中问题,就引入了泛型这个概念

在c#中用T这个字符来代替类型,在函数定义阶段可以不用指定特定的类型

1 public void sort(T[]a){
2 ...
3 }

举个详细的例子吧

public class Msort<T> 
{
  public void Sort(T[] a)
    {
    int length=a.length;
    for(int i=0;i<length-1;i++)
       for(int j=0;j<length-i-1;j++)
          {
             if(a[j]>a[j+1])
             {
              T temp=a[j];
              a[j]=a[j+1];
               a[j+1]=temp; 
             }
           }
    }  
}    

具体的调用过程:

Msort<int> s = new SortHelper<int>();
int[] a = {5,9,0,2,3};
s.Sort(array);

 

posted on 2014-10-10 15:19  最菜的  阅读(88)  评论(0)    收藏  举报