Возможно ли как-то задекларировать метод Foo<T,T2,T3>(T2 arg1, T3 arg2) where

T : Bar<T2,T3>
- чтобы при его использовании не приходилось указывать T2 и T3? Из декларации вроде и так понятно, что T включает дженерики T2 и T3, но при попытке вызвать Foo, компиллятор требует явного указания всех трех дженерик типов, хотя если указываешь T2 и T3, которые не соответствуют T1, сразу выдает ошибку компилляции. Хотел сделать красивую обертку, чтобы было меньше указаний на типы итд при обращении к методу, но получилось наоборот - компиллятор требует лишнюю информацию. Конкретный кейс - на скрине.
P.S. Пытался оформить метод как Foo<T<T2,T3>>()... - не сработало

5 ответов

10 просмотров

Зачем тебе там вообще T?

Да. Для этого все три дженерика надо замкнуть друг на друга в обьявлении. То есть, при обьявлении T у него T и в аргументе. Я это делал, когда свою абстрактную FSM писал

Aaa- Автор вопроса
Phantom
Зачем тебе там вообще T?

Изначальная идея в том, чтобы сделать универсальный фреймворк для внутриигровых всплывающих окон, которые будут вызывать колбек при закрытии с результатом выбора пользователя в кач. аргумента. T - это непосредственно тип окна, которое нужно отобразить в текущий момент, а T2 и T3 - всего лишь типы данных, которые оно принимает и возвращает соответственно. Может, у меня вообще неправильный подход к этой идее?

Aaa- Автор вопроса
Micktu 😬 Турутанов
Да. Для этого все три дженерика надо замкнуть дру...

Можно попросить пример? Не очень понял, хотя рад слышать, что это возможно

Aaa
Изначальная идея в том, чтобы сделать универсальны...

Ты нигде не используешь этот T, в коде который ты показал

Похожие вопросы

Обсуждают сегодня

Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
всем привет. я правильно понимаю, что в телеграфе 4, если сессию указать у сообщения с коллбеком (кликнул на кнопку и установил сессию), то она не сохраняется?
Тимур
1
А как получить доступ к отправленному сообщению в ChosenInlineResult? Раньше кажется можно было, щас убрали?
net
2
Карта сайта