17

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

4

1 回答 1

27

只需实现一个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)
于 2012-08-10T00:37:53.733 回答