powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Дженерик-метод с тремя параметрами типа - как вызвать хитро...
14 сообщений из 14, страница 1 из 1
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38894462
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть у меня метод

Код: c#
1.
public void MyMethod<T1, T2, T3>(Func<T1, T3> arg1)



И хочу я его вызвать, указав T1 и T2 явно, а T3 чтобы было выведено из параметра (ибо там может оказаться лямбда с анонимным делегатом на выходе).
Типа
Код: c#
1.
MyClass.MyMethod<int, string, ?>(n => new { value = n + 5, foo = "foo" })



Я слишком многого хочу?
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38894465
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

перегрузка методов не подходит?
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38894468
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это вариант на случай, если не получится проще
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38894469
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЭто вариант на случай, если не получится прощеХотя нет, не подойдет, набор типов параметров слишком велик....
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38894490
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
свою конкретную задачу решил через
Func<T1, object>
на выход T3 не идет, так что строгая типизация тут не нужна.


Так что вопрос теперь носит академический характер
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38894760
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
через метод обертку, показывал же не так давно..
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38894778
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиShocker.Pro
через метод обертку, показывал же не так давно..либо не мне, либо я не понимаю, как применить в данном случае...
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38894965
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Можно как то так.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
         public class MyClass<T1, T2>
        {
            private T1 t1 = default (T1);
            public void MyMethod<T3>(Func<T1, T3> arg1)
            {
                var tmp = arg1(t1);
            }
        }


Код: c#
1.
2.
           var mc = new MyClass<string, long>();
           mc.MyMethod(s => s.Length);
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38895010
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ,

Не, класс типизированным сделать не получится
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38895029
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
а что мешает?
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38895030
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЕвгенийВ,

Не, класс типизированным сделать не получится

Слава Тьюрингу....
Хоть это еще не заперегиперпрограммировали.....

8-Х
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38895054
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВа что мешает?то, что создание экземпляра этого класса вне компетенции контекста, вызывающего метод
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38895061
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 public void MyMethod<T1, T2, T3>(Func<T1, T3> arg1)
        {
            var ee = arg1(default(T1));
            
        }

        public void Wrapper<T>(T t) where T : class
        {
             MyMethod<string, int, T>(n => new {value = n + 5, foo = "foo"} as T);
        }

call
Wrapper(new {value = "5", foo = "foo"});
...
Рейтинг: 0 / 0
Дженерик-метод с тремя параметрами типа - как вызвать хитро...
    #38895084
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

Именно коллер должен закрывать обобщенные типы конкретными типами. То есть враппер должен быть на стороне коллера... гм, делегат что ли замутить в качестве враппера на стороне коллера....
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Дженерик-метод с тремя параметрами типа - как вызвать хитро...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]