2016-08-11 12 views
0

私はTKeyTValueTMessageListenerジェネリックを含むジェネリック? T <TValue>

public interface IHelper<TKey, TValue, TMessageListener> 

を必要とするインタフェースを実装失われてしまったが、私のTMessageListenerは、私は界面層でこれを宣言することができる方法TMessageListener<TValue>のですか?

+2

正確には、_TMessageListenerの意味は、TMessageListener < TValue > _ですか?あなたは 'TMessageListener'が' IEnumerble 'でしょうか?ジェネリック型がそのようなジェネリック型を添付するのは意味がありません。 – juharr

+1

TMessageListenerはIEnumerableではなく、TValueをパラメータとして受け取るクラスを実装するインターフェイスです。 –

+0

次に、それを制約として表現したいと思うでしょう。 'どこTMessageListener:IYourInterface '。また、 'TMessageListener'がジェネリック型として' TValue'を取るジェネリックインタフェースを実装すると仮定していることを明確に述べるために、質問を更新するべきです。 – juharr

答えて

3

これは、次のような型制約によって達成することができます。

public interface IHelper<TKey,TValue,TMsgLst> where TMsgLst : TMessageListener<TValue> 
+0

これは、 'TMessageListener'がジェネリック型である場合に混乱します。 – juharr

+0

これはどのように混乱しますか?私はこれが正確にどのように行われるべきかと思います。 ...コードドア! –

+0

これは私が最初にしたことですが、TMessageListenerは一般的で、コンパイルエラーが発生します。 –

関連する問題