> -- Wlad писал(а):
> Очень здорово вы рассказали про проблему проектирования!

Я бы ответил так, что в зависимости от применения этого "класса" я бы делал по-разному.
Если повторное удаление элемента указывает на ошибку удаляющего - например, освобождение уже освобождённой памяти, - однозначно сигнализировал бы ошибку.Если добавление повторного элемента не является ошибкой - например, при добавлении уже существующего элемента в множество (set), - то возвращал бы успех.Если же "класс" пишется универсальный, то есть два пути:можно сделать свойство "класса" наподобие AllowDuplicates: Boolean,либо можно сделать два набора методов Add/AddUnique, Del/DelExisting, etc., где Add добавляет без проверки наличия, а AddUnique делает проверку и вызывает Add.Во втором походе ответственность за вызов правильного метода ложится полностью на клиентский код, то есть размазывается, так что я бы предпочёл вариант со свойством AllowDuplicates, желательно доступным только в конструкторе.