gpt4 book ai didi

c# - 从 C# 调用具有函数参数的 F# 函数

转载 作者:太空狗 更新时间:2023-10-30 00:03:24 25 4
gpt4 key购买 nike

在 F# 中我有函数:

module ModuleName
let X (y: int -> unit) = ()

我如何在 C# 中调用它?理想情况下它看起来像

ModuleName.X(x => x*x);

但此 lambda 语法不会隐式转换为 FSharpFunc。

最佳答案

最简单的方法是使用标准 .NET 委托(delegate)类型公开您的 API。在这种情况下,这意味着您的 F# 定义应该更像:

let X (y:Action<int>) = ()

但是,如果您想保持 F# API 与当前相同,则可以使用 FuncConvert.ToFSharpFunc从 C# 端:

ModuleName.X(FuncConvert.ToFSharpFunc(x => x*x));

关于c# - 从 C# 调用具有函数参数的 F# 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9914527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com