私はTKey
、TValue
とTMessageListener
ジェネリックを含むジェネリック? T <TValue>
public interface IHelper<TKey, TValue, TMessageListener>
を必要とするインタフェースを実装失われてしまったが、私のTMessageListener
は、私は界面層でこれを宣言することができる方法TMessageListener<TValue>
のですか?
私はTKey
、TValue
とTMessageListener
ジェネリックを含むジェネリック? T <TValue>
public interface IHelper<TKey, TValue, TMessageListener>
を必要とするインタフェースを実装失われてしまったが、私のTMessageListener
は、私は界面層でこれを宣言することができる方法TMessageListener<TValue>
のですか?
これは、次のような型制約によって達成することができます。
public interface IHelper<TKey,TValue,TMsgLst> where TMsgLst : TMessageListener<TValue>
これは、 'TMessageListener'がジェネリック型である場合に混乱します。 – juharr
これはどのように混乱しますか?私はこれが正確にどのように行われるべきかと思います。 ...コードドア! –
これは私が最初にしたことですが、TMessageListenerは一般的で、コンパイルエラーが発生します。 –
正確には、_TMessageListenerの意味は、TMessageListener < TValue > _ですか?あなたは 'TMessageListener'が' IEnumerble 'でしょうか?ジェネリック型がそのようなジェネリック型を添付するのは意味がありません。 –
juharr
TMessageListenerはIEnumerableではなく、TValueをパラメータとして受け取るクラスを実装するインターフェイスです。 –
次に、それを制約として表現したいと思うでしょう。 'どこTMessageListener:IYourInterface'。また、 'TMessageListener'がジェネリック型として' TValue'を取るジェネリックインタフェースを実装すると仮定していることを明確に述べるために、質問を更新するべきです。 –
juharr