2016-08-11 94 views
0

我失去了实施的接口,我需要TKeyTValueTMessageListenerC#含泛型的泛型?牛逼<TValue>

public interface IHelper<TKey, TValue, TMessageListener> 

但我TMessageListenerTMessageListener<TValue>我怎么能这个声明在界面层?

+2

你是什么意思_TMessageListener是TMessageListener < TValue > _?你是说'TMessageListener'可能是一个'IEnumerble '?对于泛型类型来说,像这样附加一个泛型类型是没有意义的。 – juharr

+1

出现TMessageListener不是IEnumerable,而是实现接收TValue作为参数的类的接口。 –

+0

然后,您需要将其表达为一个约束:“Where TMessageListener:IYourInterface '。你也应该更新这个问题来清楚地说明'TMessageListener'应该实现一个通用接口,该接口将'TValue'作为通用类型。 – juharr

回答

3

它可以通过如下的类型约束来实现。

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

如果'TMessageListener'是一个泛型类型,这似乎是这种情况。 – juharr

+0

这是如何混淆?我认为这正是应该如何做的。 ...代码门! –

+0

这是我做的第一件事,但TMessageListener是通用的,它会得到编译错误。 –