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

F# 获取记录类型标签作为字符串列表,f#,F#,是否可以将记录类型的标签作为字符串列表获取? 例如,给定以下类型: type Person = { Name: string Age: int } 我想要一个函数,它可以为我提供[“Name”;“Age”]您可以使用FSharp.Reflection.FSharpType.GetRecordFields获取记录类型的属性信息,从中可以获取字段名 let props = FSharp.Reflection.FSharpType.GetRecordFields(typeof<

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

type Person = {
    Name: string
    Age: int
}

我想要一个函数,它可以为我提供
[“Name”;“Age”]

您可以使用
FSharp.Reflection.FSharpType.GetRecordFields
获取记录类型的属性信息,从中可以获取字段名

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

可以使用
FSharp.Reflection.FSharpType.GetRecordFields
获取记录类型的属性信息,从中可以获取字段名称

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

你为什么要这样做?在某些情况下,它是有用的,但它比许多其他语言要难得多。也许有一个更好的解决方案能激发你问…:-)您可以序列化为JSON,然后通过解析文本或使用JSON类型提供程序获取属性。您的另一个选择是反射,如下所述。为什么要这样做?在某些情况下,它是有用的,但它比许多其他语言要难得多。也许有一个更好的解决方案能激发你问…:-)您可以序列化为JSON,然后通过解析文本或使用JSON类型提供程序获取属性。您的另一个选择是反射,如下所述。