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);