在F#中重载后增量运算符是不可能的

fah*_*ash 3 f#

我正在为C#开发人员编写一个库.该库是用F#编写的.C#开发人员希望++在其中一个对象上使用operator.我怎样才能做到这一点 ?

我在网上查了一下,发现++后增量算子在F#中是不可能的.

Tom*_*cek 8

即使F#没有++运算符,您仍然可以定义支持它的F#类型:

type A(n:int) = 
  member x.N = n
  static member op_Increment (a:A) = A(a.N + 1)
Run Code Online (Sandbox Code Playgroud)

诀窍是你必须使用op_Increment方法的名称,因为这是C#用于++运算符的.不幸的是,F#不理解运算符,所以如果你编写member (++) ...,编译器将调用该方法op_PlusPlus.