试图找出使用泛型的.NET等价物(已经做了好几年的Java)。下面是一些伪代码,我想要的东西:我可以在抽象基类属性中使用泛型集合吗?
abstract base class MyBase
abstract property string Name;
abstract property ObservableCollection<T> SubItems;
然后,我有2类,从myBase继承每个将实现2种性质和类型的集合中的对象会Ë不同。
class Real1 : MyBase
property string Name
property ObservableCollection<SomeClass> SubItems;
class Real2 : MyBase
property string Name
property ObservableCollection<SomeDifferentClass> SubItems;
的关键是让这些项目被绑定到,要求所有的子元素具有相同的属性名称(XAML绑定)一个TreeView。如果我必须创建一个通用类型的新集合,我将不得不迭代遍历每个集合,并且它们很大。我不控制原始收集数据,所以我无法修改这些类。
而不是编写伪代码,你可以尝试写一个[mcve]吗?在我看来,你基本上需要MyBase是通用的,然后创建一个'MyBase'和一个'MyBase ' - 目前尚不清楚你是否需要这两个子类。 –
为什么子类中的属性实现不同于基类(泛型类型除外)? –