Определить тип, не передавая универсальный - PullRequest
2 голосов
/ 09 апреля 2020

У меня есть класс, который расширяется и принимает обобщенный тип c, который сам принимает тип:

abstract BaseClass<T : BaseT<U : BaseU>>

Конечно, код выше, хотя он показывает структуру переданных генериков недействительно, поэтому я должен написать это так:

abstract BaseClass<T : BaseT<U>, U : BaseU>

Это означает, что я должен выписать оба типа:

class MyClass : BaseClass<MyT, MyU>()

Поскольку MyT объявляет тип для использования BaseT, есть ли способ получить тип U из T, не будучи настолько многословным? Я хотел бы просто написать BaseClass<MyT> и заставить его выяснить, что, начиная с class MyT : BaseT<MyU>, он должен ожидать связанный подтип U для любого подтипа BaseT. Я обдумываю это? Правильный ли ответ: «впишите оба дженерика и перестаньте жаловаться»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...