Я пытаюсь создать примитивные значения с учетом типа в F #. Код приведен ниже, но он не работает. Буду признателен за всю помощь и благодарность заранее.отражение и сопоставление образцов в F #
open System
let getvalue (t: Type) (v: string) : obj =
match box t with
| :? int -> let r = (int) v
box r
| :? byte -> let r = (byte) v
box r
| :? sbyte -> let r = (sbyte) v
box r
| :? int16 -> let r = (int16) v
box r
| :? uint32 -> let r = (uint32) v
box r
| :? int64 -> let r = (int64) v
box r
| :? uint64 -> let r = (uint64) v
box r
| :? double -> let r = (double) v
box r
| :? float32 -> let r = (float32) v
box r
| :? decimal -> let r = (decimal) v
box r
| :? char -> let r = (char) v
box r
| :? string -> v :> obj
| _ ->
let s = sprintf "Error unknown type %A" t
raise (ApplicationException(s))
Как именно он не работает? Кроме того, как он использует отражение? –
Он просто не попадает ни в один из шаблонов. –
Когда вы задаете вопросы, никогда не пишите - «это не работает». Четко объясните проблему и желаемое поведение. –