是否可以使用通用约束,这是一种无界泛型类型?
例如:
public T DoSomething<T>(T dictionary) where T : IDictionary<,>
{
...
}
编辑:为了解释上下文,我想将方法的用法限制为IDictionary,但对于方法本身而言,TKey和TValue究竟是什么并不重要。
答案 0 :(得分:7)
这是不可能的,您需要指定类型参数:
public T DoSomething<T, TKey, TValue>(T dictionary) where T : IDictionary<TKey, TValue> { ... }
答案 1 :(得分:1)
rosylin github中存在问题,但尚未完成。所以现在不可能,但我预计相对较快。
答案 2 :(得分:0)
不,你不能这样做。也许你可以使用
public IDictionary<TKey, TValue> DoSomething<TKey, TValue>(IDictionary<TKey, TValue> dictionary)
{
...
}