Найти в Дзене
.Net Review

Обобщения (Часть 2). Использование нескольких обобщений, их ограничение

Оглавление

Если вы не читали предыдущую статью, то рекомендую начать с неё (Обобщения часть 1). В этой статье рассмотрена работа с несколькими обобщениями, ограничениями обобщений.

Использование нескольких обобщений.

Если возникнет ситуация, когда необходимо реализовать больше одного обобщения, то как с ними работать? Для реализации нескольких обобщений достаточно вписать их через запятую в скобках <>.

-2

Далее с ними можно работать также, как и с одиночным обобщением.

Ограничение обобщений

Для чего ограничения? Иногда возникает ситуация, когда необходимо воспользоваться функционалом типа данных. Но как это сделать, когда класс не знает о том, что за тип данных в обобщении? Для этого и существуют ограничения.

-3

На рисунке выше представлен пример, когда ограничение необходимо. Нужно, чтобы тип T обязательно имел конструктор, иначе сервис не будет работать (внутри реализации dbservice есть функционал, которому требуется возможность создать переменную через конструктор).

Как ограничения записываются?

После указания класса (интерфейса) с обобщением/обобщениями пишется ключевое слово where, далее обобщение : условие.

Условиями могут являться : классы, интерфейсы, структуры, указание возможности создать класс/тип (new(), class, struct).

Таким же образом указываются ограничения и для методов.

Телеграмм канал: https://t.me/dotnetreview