我正在为C#开发人员编写一个库。该库是用F#编写的。 C#开发人员希望在其中一个对象上使用++
运算符。我怎样才能做到这一点 ?
我在网上查了一下,发现++
后增量算子在F#中是不可能的。
答案 0 :(得分:8)
即使F#没有++
运算符,您仍然可以定义支持它的F#类型:
type A(n:int) =
member x.N = n
static member op_Increment (a:A) = A(a.N + 1)
诀窍是你必须使用op_Increment
名称作为方法,因为这就是C#用于++
运算符的内容。不幸的是,F#不理解运算符,因此如果编写member (++) ...
,编译器将调用方法op_PlusPlus
。