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

Как вы реализуете эквивалент в C#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)