如何声明一个 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);
我想编写一个可以完成一些工作的方法,最后 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);