是否可以将一个泛型IEnumerable传递给函数

本文关键字:IEnumerable 泛型 函数 一个 是否 | 更新日期: 2023-09-27 18:04:50

我有这个函数:

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

,我想传递不同的IEnumerable,如IEnumerable<MyObject1>IEnumerable<MyObject2>

有可能吗?

是否可以将一个泛型IEnumerable传递给函数

当然。只需将方法设置为泛型:

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

如果您查看linq到对象的扩展方法,那么它们也是这样做的(根据扩展方法语法,在IEnumerable<T>之前没有额外的this)

您可以将整个函数设置为泛型:

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

也许这样?

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