Я хотел бы написать метод, который выполняет некоторую работу и, наконец, возвращает другой метод с той же сигнатурой, что и исходный метод. Идея состоит в том, чтобы обрабатывать поток байтов в зависимости от предыдущего байтового значения последовательно, не вдаваясь в рекурсию. Называя это так:
MyDelegate executeMethod = handleFirstByte //What form should be MyDelegate?
foreach (Byte myByte in Bytes)
{
executeMethod = executeMethod(myByte); //does stuff on byte and returns the method to handle the following byte
}
Чтобы передать метод, я хочу назначить их делегату Func. Но я столкнулся с проблемой, что это приводит к рекурсивному объявлению без завершения...
Func<byte, Func<byte, <Func<byte, etc... >>>
Я как-то потерялся здесь. Как я могу обойти это?