функция запутанная. Это сделало бы симпатичную запись в запутанном соревновании по C #, но, скорее всего, вас уволят, если использовать в производстве.

у простой класс, который реализует кольцевой буфер фиксированного размера. Это должно быть эффективно, легко для глаз, типично напечатано.

РЕДАКТИРОВАТЬ: Это не должно быть МТ-способных, на данный момент. Я всегда могу добавить блокировку позже, это не будет высокий параллелизм в любом случае.

Методы должны быть: .Добавить и, я думаю, .List, где я получаю все записи. Во-вторых, поиск, я думаю, должен быть сделан с помощью индексатора. В любой момент я захочу получить любой элемент в буфере по индексу. Но имейте в виду, что от одного момента к другому Элемент [n] может отличаться, так как Круговой буфер заполняется и переворачивается.

Это не стек, это круговой буфер. Что касается «переполнения»: я ожидал бы, что внутри будет массив, содержащий элементы, и со временем голова и хвост буфера будут вращаться вокруг этого фиксированного массива. Но это должно быть невидимым для пользователя. Не должно быть обнаруживаемого извне события или поведения «переполнения».

Это не школьное задание - чаще всего оно будет использоваться для кэша MRU или журнала транзакций или событий фиксированного размера.

Ответы на вопрос(13)

Ваш ответ на вопрос