在WPF和Silverlight中,我们看到了以下类:
UIElementCollection
ItemCollection
RowDefinitionCollection
ColumnDefinitionCollection
PointCollection
为什么他们有这些类,每种类型一个类?为什么他们不使用Collection<T>
等通用类?
另外,我在Silverlight中看到,所有这些类都来自PresentationFrameworkCollection<T>
,如
public sealed class ItemCollection : PresentationFrameworkCollection<Object>
public sealed class PointCollection : PresentationFrameworkCollection<Object>
public sealed class IconCollection : PresentationFrameworkCollection<Object>
//and so on...
如果所有这些派生自一个公共类,并且我在派生类中看不到任何公共内容(所有这些都是空的!),那么为什么他们首先定义它们呢?我觉得在派生类中有一些差异要么声明private
或internal
。但我不确切知道。
请帮助我理解这些课程的设计。特别是,为什么他们使用它们而不是框架附带的泛型类?有什么好处?
答案 0 :(得分:6)
根据他们设计的用例,他们内部工作不同。例如,UIElementCollection
不仅包含元素,还确保将它们添加到相应的可视化树中...