F # powerpack viene fornito con una serie di metodi di conversione per tradurre da Func < ...> a funzioni F #, standard o tuple. Ma è possibile ottenere il contrario: nel caso si voglia chiamare dal codice F # un metodo C# che prende Func < ...> e si desidera utilizzare l'espressione lambda nativa F # (ad esempio fun x -> some_function_of (x))?Interop tra F # e C# lambda
Se invio una funzione F # con una firma 'a ->' b per un metodo C# che si aspetta Funz allora F # compilatore genera il seguente errore:
This expression was expected to have type Function<'T,'R> but here has type 'T -> 'R
voglio restare con F espressioni # lambda, ma utilizzare un livello di traduzione per poterli inviare come C# Func lambda. È possibile?
Per chiunque abbia problemi a trovare i metodi di conversione in PowerPack menzionati qui, sono in FSharp.PowerPack.Linq, FuncConvertExtensions –