例如
void f<C, T>(C<T> collection, T element) : where C has member method BindarySearch
我有两个问题:
答案 0 :(得分:1)
您可以使用界面来强制执行所需的成员:
interface IHasBinarySearch<T> : ICollection<T> {
int BinarySearch(T item);
}
然后可以像这样定义泛型方法:
void f<C, T>(C collection, T element) where C : IHasBinarySearch<T>
此接口已经是一个通用集合(通过扩展ICollection<T>
),因此无需再次指定该方法的约束。