C#进阶

C# 泛型的基本用法

背景

在没有泛型的时候,我们想要让方法接受多种类型的参数,
在.NET Framwork 1.0时代我们会这样定义一个方法:

public void MyAction(object myParameter)
{
  if(myParameter.GetType()==typeof(int)){
        //...
    }
  else if(myParameter.GetType()==typeof(long)){
        //...
    }
  else{
        //...
    }
}

//调用:
int m=213;
long l=2311232131323123123213;
MyAction(m);
MyAction(l);

泛型的定义和使用

但是我们在使用上面object类型时,参数传进来,C#默认会对参数进行一次拆箱,在拆箱的过程中会有性能损失。
如果使用泛型

//泛型的方法定义是这样的:
public void MyGenericAction<T>(T myParameters)
{
  //...
}

//调用的:
int m=213;
long l=2311232131323123123213;
MyGenericAction(m);
MyGenericAction(l);

//也可以这样使用:
MyGenericAction<int>(m);
MyGenericAction<long>(l);

更多参考

http://blog.csdn.net/zjlovety/article/details/9044357

原文地址:https://www.cnblogs.com/ASinger/p/6507615.html