gpt4 book ai didi

c# - 如何制作采用泛型类型的泛型方法

转载 作者:太空狗 更新时间:2023-10-29 21:21:43 24 4
gpt4 key购买 nike

我想写下面的方法

private void Foo<T, TItem>(T<TItem> param1)

其中 T 必须是将 TItem 作为其通用信息的通用类型。

调用示例如下:

private void Main()
{
List<int> ints = new List<int>();
Foo<List, int>(ints);
}

编辑:在我的例子中,我只需要收集。实际用例是我想编写一个方法来向 ICollection 添加一些东西,遗憾的是 ICollection没有 .Add方法只有 ICollection<T>有。

我无法将方法更改为:

private Foo<T>(ICollection<T>)

因为这样我就失去了实际列表是什么类型的信息,这对我来说比列表中项目的类型更重要。

于是萌生了上面的想法,没有成功。

最佳答案

因为你只需要为集合,你可以描述这样的方法:

private void Foo<T, TItem>(T param1)
where T: ICollection<TItem>
{
}

但是在这种情况下,您需要提供特定的通用类型 ( List<int> ) 作为第一个通用参数,您不能只使用 List :

List<int> ints = new List<int>();
Foo<List<int>, int>(ints);

关于c# - 如何制作采用泛型类型的泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35464960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com