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

时间:2012-08-10 00:13:39

标签: f# c#-to-f#

如何在F#中实现C#的explicit运算符的等价物?是否支持?

1 个答案:

答案 0 :(得分:23)

只需实现op_Explicit静态成员,例如

type SomeType() =
    static member op_Explicit(source: SomeType) : int =
        1

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

SomeType() |> int

通过注意int

类型签名上的静态成员约束,你可以看到它的工作原理
^a -> int when  ^a : (static member op_Explicit :  ^a -> int)