F # powerpack đi kèm với một tập hợp các phương pháp chuyển đổi để dịch từ Func < ...> thành F # functions, hoặc standard hoặc tupled. Nhưng có thể đạt được điều ngược lại: trong trường hợp bạn muốn gọi từ mã F #, phương thức C# nhận Func < ...> và muốn sử dụng biểu thức lambda F # gốc (ví dụ: vui vẻ x -> some_function_of (x))?Interop giữa F # và C# lambdas
Nếu tôi gửi một F # chức năng với một chữ ký 'a ->' b đến một phương pháp C# mà hy vọng Func rồi F # biên dịch tạo ra các lỗi sau:
This expression was expected to have type Function<'T,'R> but here has type 'T -> 'R
Tôi muốn ở lại với F biểu thứC# lambda nhưng để sử dụng một lớp dịch thuật để có thể gửi chúng dưới dạng C# Func lambda. Điều này có thể đạt được không?
Đối với bất kỳ ai gặp khó khăn trong việc tìm kiếm các phương pháp chuyển đổi trong PowerPack được đề cập ở đây, chúng nằm trong FSharp.PowerPack.Linq, FuncConvertExtensions –