Как вы создаете анонимные записи F # в C #? - PullRequest
11 голосов
/ 04 апреля 2019

Я вижу, что если я создаю новую анонимную запись, например.

let myRecord = {| SomeInteger = 5 |}

, то, если она подвергается воздействию C #, тогда я могу указать на нее

var someInteger = myRecord.SomeInteger;

Как насчети наоборот, если у меня есть функция F #, скажем:

let unwrap (record : {| SomeInteger : int |}) = record.SomeInteger

и она доступна для C #, как я могу создать аргумент для этой функции из C # и вызвать ее?Я наивно пытался просто разместить там анонимный тип C #, т.е.

var unwrapped = unwrap(new { SomeInteger = 5 });

, но это не скомпилировалось.Я отмечаю, что в RFC для функции сказано, что "Функция должна обеспечивать совместимость с анонимными объектами C # (из C # 3.0)" , но конкретно не указано, каким образом.Это поддерживается?

...