試圖找出使用泛型的.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 ' - 目前尚不清楚你是否需要這兩個子類。 –
爲什麼子類中的屬性實現不同於基類(泛型類型除外)? –