То, что я ищу, вероятно, не будет возможно без обращения к размышлению.Если бы это было так, я все еще хотел бы знать, как лучше всего это осуществить.
По сути, я хочу, чтобы мой код выглядел так:
var instance = new MyClass();
instance.Add<int, string>(x => x.ToString());
instance.Add<string, Warehouse>(x => Warehouse.LookupByName(x));
instance.Add<Warehouse, IList<Supplier>>(x => x.Suppliers());
instance.Chain(3); // should call each lambda expression in turn
Мой вопростакое, как я могу сохранить эти делегаты, каждый с разной подписью, в списке в MyClass?И как я могу вызвать их позже, когда захочу, используя возвращаемое значение каждого из них в качестве входного параметра для следующего?
Внутри MyClass вполне может быть беспорядок List и все такое,Но я даже не уверен, с чего начать.
(Изначально я хотел вызвать new MyClass<int, string, Warehouse, IList<Supplier>>()
. Однако, поскольку «массива параметров типа» нет, я отказался от этого подхода.)