Давайте функцию:Anonymous функция декларации типа
Func<argsFoo, resultFoo> foo= x=>new resultFoo(x);
Func<argsBar, resultBar> bar= x=>new resultBar(x);
Func<argsBaz, resultBaz> baz= x=>new resultBaz(x);
Я хочу, чтобы создать сложную функцию, которая использует все эти функции, объявленные выше.
Как это:
Func
<
Func<argsFoo, resultFoo>,
Func<argsBar, resultBar>,
Func<argsBaz,resultBaz>,
fooBarBazResult
> fooBarBaz=...
Дело такое заявление убивает читаемость программе. В этом случае вывод типа не работает.
Вопрос: Могу ли я использовать что-то вроде этого?
FooBarBaz<typeof(foo),typeof(bar)>,typeof(baz)>>
Я пробовал и отвечаю - нет. Может быть, у кого-нибудь есть другое решение, чтобы сделать краткие сложенные декларации функций?
Это выглядит странно. Последним общим параметром 'Func' является возвращаемый тип. У вас есть три Funcs с тремя различными типами возвращаемых данных, и все же вы пытаетесь объединить их с Func, который берет их первым в качестве ввода и возвращает Func, который выглядит как третий? Что вы на самом деле пытаетесь сделать здесь? –
Не связано с тем, что вы просите, но лямбда '(x) => {return new resultFoo (x);}' (точка с запятой отсутствует в вашем коде!) Может быть немного упрощена до 'x => new resultFoo (x) '. –
Даниил, вы правы, я должен исправить ошибку в примере. –