我失去了实施的接口,我需要TKey
,TValue
和TMessageListener
C#含泛型的泛型?牛逼<TValue>
public interface IHelper<TKey, TValue, TMessageListener>
但我TMessageListener
是TMessageListener<TValue>
我怎么能这个声明在界面层?
我失去了实施的接口,我需要TKey
,TValue
和TMessageListener
C#含泛型的泛型?牛逼<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作为参数的类的接口。 –
然后,您需要将其表达为一个约束:“Where TMessageListener:IYourInterface'。你也应该更新这个问题来清楚地说明'TMessageListener'应该实现一个通用接口,该接口将'TValue'作为通用类型。 –
juharr