Я только начинаю работать с F # и не могу найти синтаксис для инициализации объекта, как в C # 3.
Т.е. учитывая это:
public class Person {
public DateTime BirthDate { get; set; }
public string Name { get; set; }
}
как мне написать на F # следующее:
var p = new Person { Name = "John", BirthDate = DateTime.Now };
syntax
f#
object-initializers
Маурисио Шеффер
источник
источник
ответ от CMS определенно верный. Вот только одно дополнение, которое также может оказаться полезным. В F # вы часто хотите написать тип, просто используя неизменяемые свойства. При использовании синтаксиса «инициализатор объекта» свойства должны быть изменяемыми. Альтернативой в F # является использование именованных аргументов, что дает вам аналогичный синтаксис, но сохраняет неизменность:
Теперь мы можем написать:
Код требует, чтобы вы указали имя, но день рождения - это необязательный аргумент с некоторым значением по умолчанию.
источник
Вы также можете опустить
new
ключевое слово и использовать менее подробный синтаксис:https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/constructors
источник