[英]In C#, is a dictionary whose keys are of type Type slower than a dictionary whose keys are of type ulong?
[英]Type inheritance in Dictionary<ulong,BaseObject>
情況如下:有一個類型為BaseObject
的基類,所有其他類都從該基類派生而來(即Task : BaseObject
)。 還有一個繼承自Dictionary<ulong,BaseObject>
BaseObjectCollection
類型的基類集合,以及BaseObjectCollection
繼承的其他一些集合(即TaskCollection:BaseObjectCollection
)。 遍歷TaskCollection
成員時,它們將顯示為BaseObject
類型。 有什么方法可以使集合“更改”其值的類型,從而使其具有BaseobjectCollection
的功能,但仍顯示為Dictionary<ulong,Task>
而不是Dictionary<ulong,BaseObject>
您應該將BaseObjectCollection
類型更改為將使用的值的類型。 例如:
public class BaseObjectCollection<T> : Dictionary<ulong, T>
where T : BaseObject
然后,您可以使用BaseObjectCollection<Task>
並且仍然是完全類型安全的。
(我將在大多數情況下親自使用組合,而不是從Dictionary<,>
派生新類型Dictionary<,>
但這是另一回事。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.