如何在F#中定义显式运算符?

the*_*onk 12 f# c#-to-f#

你如何explicit在F#中实现相应的C#运算符?是否支持?

Ste*_*sen 23

只需实现一个op_Explicit静态成员即可

type SomeType() =
    static member op_Explicit(source: SomeType) : int =
        1
Run Code Online (Sandbox Code Playgroud)

然后你可以使用相应的F#显式转换运算符

SomeType() |> int
Run Code Online (Sandbox Code Playgroud)

你可以通过注意类型签名上的静态成员约束来看到它的工作原理 int

^a -> int when  ^a : (static member op_Explicit :  ^a -> int)
Run Code Online (Sandbox Code Playgroud)