如何声明一个 returns 相同类型的 Func Delegate 的 Func Delegate?

How do I declare a Func Delegate which returns a Func Delegate of the same type?

我想编写一个可以完成一些工作的方法,最后 returns 另一个与原始方法具有相同签名的方法。这个想法是根据前一个字节值顺序处理字节流,而不用递归。通过这样调用它:

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... >>>

我在这里迷路了。我该如何解决这个问题?

当预定义的 Func<...> 委托不够时,您可以简单地声明委托类型:

public delegate RecursiveFunc RecursiveFunc(byte input);

如果您需要,您也可以使用泛型:

public delegate RecursiveFunc<T> RecursiveFunc<T>(T input);