编写一个泛型函数
本文关键字:一个 泛型 函数 | 更新日期: 2023-09-27 18:11:23
我有一个简单的函数
public static int Search(List<int> list, int item){}
我想把它写成泛型函数。我还想传递List和Array,所以我可以像这样写吗?
public static T Search<S,T>(S list, T item) where T : IComparable & where S : IEnumerable<T> {}
直接语法错误是&
,更改为:
public static T Search<S,T>(S list, T item)
where T : IComparable
where S : IEnumerable<T> {}
列表和数组都实现了IEnumerable<T>
,所以你可以完全摆脱S
类型:
public static T Search<T>(IEnuermable<T> list, T item) where T : IComparable
{}
由于您已经在where
语句中声明了这一点,因此这两者在语义上是等价的。
int Search<T> (IEnumerable<T> list, T item)
您在寻找语法吗?
public static T Search<S,T>(S list, T item) where T : IComparable where S : IEnumerable<T> {}
我还想传递List和Array,所以我可以像这样写吗?
如果你想把Array
和List
都传递给你的函数,那么你需要找到一个Array
和List<T>
都实现的公共类型,可以是IEnumerable<T>
:
public static T Search<T>(IEnumerable<T> source, T item)