Выбор ответа Middle Дженерики обновлено
Ограничение на интерфейс
Вопрос
Метод T Max<T>(T a, T b) должен сравнивать аргументы. Какое ограничение нужно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: where T : IComparable<T. Чтобы вызвать a.CompareTo(b), компилятор должен знать, что у T есть этот метод: ограничение IComparable<T это гарантирует. struct и class говорят только о виде типа, new() о конструкторе.
Варианты ответа
where T : IComparable<T>правильный ответwhere T : structwhere T : classwhere T : new()
Разбор
Чтобы вызвать a.CompareTo(b), компилятор должен знать, что у T есть этот метод: ограничение IComparable<T> это гарантирует. struct и class говорят только о виде типа, new() о конструкторе. С .NET 7 для чисел есть ещё обобщённая математика: where T : INumber<T>, и тогда можно писать a > b.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.