是否可以传递给一个通用IEnumerable的函数?

时间:2011-08-09 13:29:11

标签: c# function ienumerable

我有这个功能:

private void Pager(IEnumerable<t> tEnum)
{
   ...
}

我希望传递不同的IEnumerable,例如IEnumerable<MyObject1>IEnumerable<MyObject2>

有可能吗?

3 个答案:

答案 0 :(得分:4)

不确定。只需使方法通用:

private void Pager<T>(IEnumerable<T> tEnum)
{
   ...
}

如果你看一下LINQ-to-objects扩展方法,那就是他们做事的方式(根据扩展方法语法,在this之前没有额外的IEnumerable<T>。)

答案 1 :(得分:2)

您可以使整个功能通用:

private void Pager<T>(IEnumerable<T> tEnum)
{
   // here T can be anything
}

// you can call it like:
Pager(new int[]{10,20});
Pager(new string[]{"meep","x"});

答案 2 :(得分:0)

也许这样?

private void Pager<t>(IEnumerable<t> tEnum)