首页 > 解决方案 > 记录属性的 F# nameof

问题描述

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

type MyType { Id: int }
let name = nameof MyType.Id

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

我试着做:

let name = nameof<MyType.Id>
let name = nameof(MyType.Id)
let name = nameof Id

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

标签: f#nameof

解决方案


这是F# nameof operator not a first-class function的副本。

简短的回答是:

let x = Unchecked.defaultof<MyType>
let name = nameof x.Id

推荐阅读