我正在做一些与一些C#库的接口工作,并且需要做一些对象的转换。有一些重复的代码,我认为可以通过将向下转换的类型作为参数传递来解决。
// 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)https://stackoverflow.com/questions/41508756
复制相似问题