無制限のジェネリック型であるジェネリック制約を持つことは可能ですか?
例えば:
public T DoSomething<T>(T dictionary) where T : IDictionary<,>
{
...
}
編集:コンテキストを説明するために、メソッドの使用を IDictionary に制限したいのですが、メソッド自体については、TKey と TValue が正確に何であるかは問題ではありません。
無制限のジェネリック型であるジェネリック制約を持つことは可能ですか?
例えば:
public T DoSomething<T>(T dictionary) where T : IDictionary<,>
{
...
}
編集:コンテキストを説明するために、メソッドの使用を IDictionary に制限したいのですが、メソッド自体については、TKey と TValue が正確に何であるかは問題ではありません。
これは不可能です。型パラメーターを指定する必要があります。
public T DoSomething<T, TKey, TValue>(T dictionary) where T : IDictionary<TKey, TValue> { ... }
いいえ、それはできません。多分あなたは使うことができます
public IDictionary<TKey, TValue> DoSomething<TKey, TValue>(IDictionary<TKey, TValue> dictionary)
{
...
}