2

MyDict<Type, BlockingCollection<"differentTypes">可以通过规避任何强制转换从而防止使用对象或动态类型的接口来设置字典吗?

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

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

4

1 回答 1

1

最终,“不同类型”意味着要么object,要么是一个通用的基类/接口。如果这些类型是值类型,那么它们必须被装箱和拆箱(尽管您指出这些是类对象,所以这不适用 - 只有structs 被装箱/拆箱)。所以剩下一些演员表 - 演员表非常快:我不会太担心它的影响。

当然,如果“不同类型”(一些通用接口等)之间存在一些共性,那么您可能无需强制转换就可以使用该通用接口。

于 2012-05-01T05:12:07.117 回答