如何为T?</t>存储具有不同类型的ObservableCollection <t>集合

时间:2013-11-26 08:47:38

标签: c# .net dictionary covariance contravariance

我有一个课程ActiveList<T>: ObservableCollection<T>,我希望将其存储在密钥为Type的字典中,该字典是T的{​​{1}},类似于:

ActiveList

当然字典无法输入,因为它应该适合Dictionary<Type, ActiveList<T>> 的不同类型。如果您知道T被约束为T,那么我可以考虑制作字典:

XTimeEntity

但是,如果我需要Dictionary<Type, ActiveList<XTimeEntity>> ,我如何将ActiveList<XtimeEntity>投放到ActiveList<T>

2 个答案:

答案 0 :(得分:0)

是否有所有ActiveLists共享的接口?比你有Dictionary<Type, IActiveList>。但你仍然需要投射收到的价值。

答案 1 :(得分:0)

为什么不使用界面?

定义一个接口(IActive)来声明你想要实现的方法,然后实现它。

public class Acitve<T> : IActive

将其添加到Dictionary<Type, IActive>