Ich mache einige Schnittstellen mit einigen C# -Bibliotheken und muss einige Objekte werfen. Es gibt einige Doppelungen von Code, von denen ich denke, dass sie dadurch gelöst werden könnten, dass der Typ des Downcast als Argument übergeben werden kann.F # bieten Downcast-Typ als Funktionsargument
// transform exceptions into Option type
let tryFn fn =
try Some(fn()) with ex -> None
let tryCastString (o: obj) = tryFn (fun() -> o :?> string)
let tryCastUInt64 (o: obj) = tryFn (fun() -> o :?> uint64)
// I would like to do something like the following
let tryCast (o: obj) (t: type) = tryFn (fun() -> o :?> t)