包含不同类型的阻塞集合而不进行强制转换的字典

时间:2012-05-01 04:51:12

标签: c# collections types interface blockingcollection

我是否可以通过一个绕过任何转换的接口设置MyDict<Type, BlockingCollection<"differentTypes">字典,从而阻止使用对象或动态类型?

我想要使用的原因是因为我想在运行时初始化不同类型的阻塞集合,因为传入的对象属于不同的类型,然后我想将这些传入的对象添加到匹配阻塞集合的类型中。我也想稍后访问BlockingCollection中的对象,而不必进行强制转换。在包装类的实例化时,已知必要类型的Blocking集合。传入对象的类型仅在运行时已知。传入的对象类型永远不会与类实例化时间中已知的类型不同。我想从匹配的BlockingCollection中检索的对象类型也只在运行时才知道。有什么方法可以设置它而不必投射?

我浏览了许多相关问题,但未找到此处描述的完全相同的规格。

1 个答案:

答案 0 :(得分:1)

最终,“differentTypes”表示object或公共基类/接口。如果这些类型是值类型,则必须将它们装箱并取消装箱(尽管您指出这些是类对象,因此这不适用 - 只有struct被装箱/取消装箱)。因此,留下一些演员阵容 - 演员阵容非常快速:我不会太担心它的影响。

当然,如果“differentTypes”(某些常见界面等)之间存在某些共性,那么您可以使用该通用界面而无需进行转换。