Как определить явный оператор в F #?

Как вы реализуете эквивалент оператора С# explicit в F #? Поддерживается ли это?

Ответ 1

Просто реализуйте статический член 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)