我必须开发一个自定义对象集合。原因有两点,我需要能够为集合指定一个内部名称,并且集合还需要实现一些抽象方法,以像我拥有的任何其他实体一样对待。创建自定义集合时暴露收集方法
所以我创建了一个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