2

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それとも完全には実装されていませんか?

4

1 に答える 1

4

これはF# nameof operator not a first-class functionの複製です。

簡単な答えは次のとおりです。

let x = Unchecked.defaultof<MyType>
let name = nameof x.Id
于 2021-01-09T21:48:01.113 に答える