Как документировать контракт метода FilterLast в C#?

Summary должен описывать именно выбор последних элементов с сохранением порядка. Пограничные случаи, ограничения источника и исключения фиксируются отдельно, а не выводятся из имени метода.

Короткий ответ

Что ответить на собеседовании

Summary должен описывать именно выбор последних элементов с сохранением порядка. Пограничные случаи, ограничения источника и исключения фиксируются отдельно, а не выводятся из имени метода.

Подробный разбор

Ответ с пояснениями

Условие

Метод FilterLast<T>(IEnumerable<T> source, int n) возвращает последние n элементов конечной последовательности в исходном порядке. При n=0 результат пустой, при n больше длины — вся последовательность. Отрицательное n и null source вызывают исключения. Сформулируйте XML-документацию.

Ответ

Summary должен описывать именно выбор последних элементов с сохранением порядка. Пограничные случаи, ограничения источника и исключения фиксируются отдельно, а не выводятся из имени метода.

/// <summary>Возвращает последние n элементов конечной последовательности
/// с сохранением их исходного порядка.</summary>
/// <param name="source">Непустая ссылка на конечную последовательность.</param>
/// <param name="n">Неотрицательное количество элементов.</param>
/// <returns>При n=0 — пустой результат; при n больше длины — все элементы.</returns>
/// <exception cref="ArgumentNullException">source равен null.</exception>
/// <exception cref="ArgumentOutOfRangeException">n меньше нуля.</exception>

Слово «конечная» существенно: получить последние элементы бесконечного потока в общем случае невозможно. Момент проверки аргументов нужно дополнительно согласовать с реализацией ленивого перечисления.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее