Я должен разработать собственную коллекцию объектов.Причина двоякая: мне нужно иметь возможность присваивать коллекции внутреннее имя, а в коллекции также должны быть реализованы некоторые абстрактные методы, которые будут обрабатываться, как и любой другой объект, который у меня есть.
Итак, я создалКласс EntityList.Ниже приведен фрагмент класса.Он содержит идентификатор и список сущностей, а также несколько методов.Мой вопрос заключается в следующем: пока я включил в методы управления списком, которые мне нужны, такие как «Добавить», «Вставить», «Удалить» и «Очистить».Если у вас есть ссылка на EntityList с именем myEntityList, вы можете выполнить что-то вроде 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();
}
}
Я нарушаю некоторые кардинальные правила здесь?Как мне управлять списком, если он является членом другого класса?