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