F# 记录属性的 nameof

Jon*_*n49 5 f# nameof

我正在尝试使用nameofF# 5.0 预览版中的新功能。它适用于values但不适用于记录属性,例如:

type MyType { Id: int }
let name = nameof MyType.Id
Run Code Online (Sandbox Code Playgroud)

这会导致错误FS0728 Field 'Id' is not static

我尝试这样做:

let name = nameof<MyType.Id>
let name = nameof(MyType.Id)
let name = nameof Id
Run Code Online (Sandbox Code Playgroud)

也没有修复错误。有没有一种特殊的方法我应该这样做或者没有nameof完全实施?

bri*_*rns 9

这是 F# nameof 运算符的重复项,而不是一流函数

简短的回答是:

let x = Unchecked.defaultof<MyType>
let name = nameof x.Id
Run Code Online (Sandbox Code Playgroud)