Mi piacerebbe scrivere un metodo che funziona un po 'e restituisce infine un altro metodo con la stessa firma del metodo originale. L'idea è di gestire un flusso di byte in base al valore del byte precedente in sequenza senza andare in ricorsione. Chiamandolo in questo modo:Come si dichiara un Delegato Func che restituisce un Delegato Func dello stesso tipo?
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
}
Per passare il metodo, desidero assegnarli a un delegato Func. Ma mi sono imbattuto nel problema che questo si traduce in una dichiarazione ricorsiva senza terminazione ...
Func<byte, Func<byte, <Func<byte, etc... >>>
sto in qualche modo perso qui. Come potrei andare in giro?
La firma di il metodo non è noto al momento della compilazione. Non sa che il parametro è un 'byte '. – Servy
@Servy In tal caso ... 'delegate RecursiveFunc RecursiveFunc (input T)' –
eccellente - funziona come un fascino. Nel mio caso so che sarà un Byte, ma +1 per la versione generica. – Marwie