C#中的F#中缀运算符?

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。


以上是C#中的F#中缀运算符?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>