获取记录类型标签作为字符串列表

时间:2019-11-21 16:01:51

标签: f#

是否可以获取记录类型的标签作为字符串列表? 例如,给定以下类型:

type Person = {
    Name: string
    Age: int
}

我想要一个给我["Name"; "Age";]

的函数

1 个答案:

答案 0 :(得分:4)

您可以使用extension UIView { func roundCorners(corners: UIRectCorner, radius: CGFloat) { let path = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius)) let mask = CAShapeLayer() layer.mask = mask mask.path = path.cgPath } } 来获取记录类型的属性信息,从中可以获取字段名称。

FSharp.Reflection.FSharpType.GetRecordFields

输出:

 let props = FSharp.Reflection.FSharpType.GetRecordFields(typeof<Person>)
 let names = props |> Array.map(fun prop -> prop.Name)
 printfn "%A" names