我必須開發一個自定義對象集合。原因有兩點,我需要能夠爲集合指定一個內部名稱,並且集合還需要實現一些抽象方法,以像我擁有的任何其他實體一樣對待。創建自定義集合時暴露收集方法
所以我創建了一個EntityList類。以下是該課程的一部分。它包含一個id和一個實體列表,以及一堆方法。我的問題是,到目前爲止,我已經把我需要的列表管理方法,如添加,插入,刪除和清除。如果您有一個名爲myEntityList的EntityList引用,您可以執行類似myEntityList.Add(newEntity)的操作。我喜歡這種方法,但真的這些方法只是把工作交給清單。我也可以不實現任何這些方法,並且可以使用myEntityList.Items.Add(newEntity)執行與上面相同的操作。但是,在這裏您直接訪問對象屬性的方法。我想完全刪除Items屬性,但是我經常需要使用foreach遍歷列表,並且需要訪問實際列表。
這是我的類定義,它沒有重寫包含的抽象方法。
class EntityList
{
String entityId;
List<EntityBase> _entities;
public EntityList()
{
_entities = new List<EntityBase>();
}
public List<EntityBase> Items
{
get { return _entities; }
//set { _entities = value; }
}
public void Add(EntityBase entity)
{
_entities.Add(entity);
}
public void Insert(int index, EntityBase entity)
{
_entities.Insert(index, entity);
}
public void Remove(EntityBase entity)
{
_entities.Remove(entity);
}
public void Clear()
{
_entities.Clear();
}
}
我違反了一些基本規則嗎?當它是另一個班級的成員時,我應該如何管理該列表?
謝謝,這更有意義。我想我也可以覆蓋任何List方法,如果我想使用替代實現,比如執行一些驗證以將項添加到列表中。 – WPFNewbie