我正在为C#开发人员编写一个库。该库是用F#编写的。C#开发人员希望在其中一个对象上使用 ++ 运算符。我该如何实现?
我在网上查找发现,在F#中没有 ++ 后增量运算符。
我在网上查找发现,在F#中没有 ++ 后增量运算符。
尽管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
方法。
++
在 F# 中没有意义。而且,希望公开自定义++
运算符似乎是共享库的一个奇怪要求。我很想看看你的 API 是什么样子的。 - Phillip Scott Givens