Сопоставление Middle Дженерики обновлено

Ограничения where и что они разрешают

Вопрос

Сопоставьте ограничение и то, что оно разрешает внутри метода.

Попробуйте сами

Нажмите слева, потом подходящее справа.

Показать ответ и разбор

Коротко

Ограничение сообщает компилятору, какие операции гарантированно есть у типа. Без него с T можно делать только то, что умеет object.

Правильные пары

where T : new()
Писать new T()
where T : IComparable<T>
Вызывать a.CompareTo(b)
where T : struct
Использовать T? как Nullable<T>
where T : unmanaged
Брать указатель T* и делать stackalloc T[n]
where T : INumber<T>
Писать a + b и T.Zero

Разбор

Ограничение сообщает компилятору, какие операции гарантированно есть у типа. Без него с T можно делать только то, что умеет object.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.