c#中的F#中缀运算符



在F#中,为二进制运算符声明中缀运算符并不罕见。但是,如果我们试图在C#中使用它们,它们是如何表示的?因为在C#中没有方法声明中缀运算符?

玩具示例

let ( .|. ) a b = a + b

如果您检查操作员的IL表示,您将看到:

.method public static specialname int32
op_DotBarDot(
int32 a,
int32 b
) cil managed

不幸的是,您将无法从C#中引用此内容。但是,您可以添加一个属性:

[<CompiledName("addop")>]
let ( .|. ) a b = a + b

然后你可以从C#引用你的F#dll,并通过addop:调用它

Console.WriteLine(global::Program.addop(1,2));

3

进程已完成,退出代码为0。

相关内容

  • 没有找到相关文章

最新更新