泛型类和泛型方法
在编程程序时,经常会遇到功能非常相似的模块,只是它们处理的数据不一样。但我们没有办法,只能分别写多个方法来处理不同的数据类型。这个时候,那么问题来了,有没有一种办法,用同一个方法来处理传入不同种类型参数的办法呢?
泛型方法
private void button1_Click(object sender, EventArgs e)
{
GenericMethod(123);
GenericMethod("456");
GenericMethod(true);
}
#region 泛型方法
public void GenericMethod<T>(T a)
{
listBox1.Items.Add($"值为{a},类型为{a.GetType()}");
}
#endregion
结果:
泛型类
private void button1_Click(object sender, EventArgs e)
{
var genericInt = new GenericClass<int>();
var genericString = new GenericClass<string>();
var genericBool = new GenericClass<bool>();
genericInt.a = 123;
genericString.a = "456";
genericBool.a = true;
GenericMethod(genericInt.a);
GenericMethod(genericString.a);
GenericMethod(genericBool.a);
}
#region 泛型方法
public void GenericMethod<T>(T a)
{
listBox1.Items.Add($"值为{a},类型为{a.GetType()}");
}
#endregion
#region 泛型类
public class GenericClass<T>
{
public T a;
}
#endregion
结果: