0
void f<C, T>(C<T> collection, T element) : where C has member method BindarySearch
我有两个问题:
- 如果有可能宣布与泛型集合泛型方法?如果是这样,怎么样?
- 如何让C有一个特定的成员方法? 谢谢。
void f<C, T>(C<T> collection, T element) : where C has member method BindarySearch
我有两个问题:
可以使用一个接口来执行所需的成员:
interface IHasBinarySearch<T> : ICollection<T> {
int BinarySearch(T item);
}
接着通用方法可以像这样被定义:
void f<C, T>(C collection, T element) where C : IHasBinarySearch<T>
此接口已经是一个通用的集合(由扩展ICollection<T>
),所以不需要再次指定该方法的约束。
(1)如果您的意思是您是否可以使用泛型集合类型作为类型参数(即'List'),那么答案是肯定的。 (2)您需要声明一个接口(包含要执行的成员),并在C上指定转换类型约束(即'where C:IContract') –
chomba