泛型类和泛型方法

  在编程程序时,经常会遇到功能非常相似的模块,只是它们处理的数据不一样。但我们没有办法,只能分别写多个方法来处理不同的数据类型。这个时候,那么问题来了,有没有一种办法,用同一个方法来处理传入不同种类型参数的办法呢?

  泛型方法

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

  结果:

 

posted @ 2023-11-28 10:52  时而有风  阅读(20)  评论(0编辑  收藏  举报