以列表作为参数的重载功能

时间:2012-05-16 06:04:18

标签: c# .net list generics overloading

我想创建一个以C#List数据类型作为参数的函数。

public void foo(List<Something> obj)
{
...
}

但是我希望将任何List类型传递给函数,我的意思是,像这样

List<Class1> obj1 = new List<Class1>();
foo(obj1);

List<Class2> obj2 = new List<Class2>();
foo(obj2);

我可以这样做吗?这该怎么做?提前致谢

2 个答案:

答案 0 :(得分:4)

为您的foo方法添加通用参数。

public void foo<T>(List<T> obj)
{
...
}

您可以找到有关他们的更多信息here

答案 1 :(得分:3)

使用generics

public void foo<T>(List<T> obj)
{
...
}

一样打电话
 foo<Class1>(new List<Class1>());
 foo<Class2>(new List<Class2>());

通过使用generics type inference

可以进一步简化上述内容
 foo(new List<Class1>());
 foo(new List<Class2>());