using ProjectAirplaneWithRadar.Drawnings; namespace ProjectAirplaneWithRadar.CollectionGenericObjects { /// /// Интерфейс описания действий для набора хранимых объектов /// /// Параметр: ограничение - ссылочный тип public interface ICollectionGenericObjects where T : class { /// /// Количество объектов в коллекции /// int Count { get; } /// /// Установка максимального количества элементов /// int MaxCount { get; set; } /// /// Добавление объекта в коллекцию /// /// Добавляемый объект /// Сравнение двух объектов /// true - вставка прошла удачно, false - вставка не удалась int Insert(T obj, IEqualityComparer? comparer = null); /// /// Добавление объекта в коллекцию на конкретную позицию /// /// Добавляемый объект /// Позиция /// Сравнение двух объектов /// 1 - вставка прошла удачно, -1 - вставка не удалась int Insert(T obj, int position, IEqualityComparer? comparer = null); /// /// Удаление объекта из коллекции с конкретной позиции /// /// Позиция /// T? Remove(int position); /// /// Получение объекта по позиции /// /// Позиция /// Объект T? Get(int position); /// /// Получение типа коллекции /// CollectionType GetCollectionType { get; } /// /// Получение объектов коллекции по одному /// /// Поэлементый вывод элементов коллекции IEnumerable GetItems(); /// /// Сортировка коллекции /// /// Сравнитель объектов void CollectionSort(IComparer comparer); } }