Parsing f#将字符串解析为颜色

Parsing f#将字符串解析为颜色,parsing,colors,f#,Parsing,Colors,F#,对F#来说是个新手,对语法也不太确定。错误发生在 Error 1 This expression was expected to have type Color but here has type obj System.Enum.Parse返回需要强制转换为枚举类型的obj类型。您可以使用:?>或downcast来执行此操作。在您的情况下,类型是已知的,因此您可以使用downcast 有关更多信息,请参阅文档 "Color = txtBoxVal4" clickedCirc

对F#来说是个新手,对语法也不太确定。错误发生在

Error   1   This expression was expected to have type
Color    
but here has type
obj 

System.Enum.Parse
返回需要强制转换为枚举类型的
obj
类型。您可以使用
:?>
downcast
来执行此操作。在您的情况下,类型是已知的,因此您可以使用
downcast

有关更多信息,请参阅文档

"Color = txtBoxVal4"

clickedCircle用于
Enum.Parse
的包装函数可以很好地利用
Enum
约束,并消除在调用站点取消装箱的需要

clickedCircle <- {X = txtBoxVal2; Y = txtBoxVal3; Diameter = txtBoxVal1; Color = downcast txtBoxVal4}
模块枚举=
让parse>value=Enum.parse(typeof
clickedCircle <- {X = txtBoxVal2; Y = txtBoxVal3; Diameter = txtBoxVal1; Color = downcast txtBoxVal4}
module Enum =
  let parse<'T, 'U when 'T : enum<'U>> value = Enum.Parse(typeof<'T>, value) :?> 'T

let color = Enum.parse "Black"