在没有泛型的时候,我们想要让方法接受多种类型的参数,
在.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);
我们如果想要限制T的类型,请参考以下链接:
http://blog.csdn.net/zjlovety/article/details/9044357
全文完。