Właśnie zaczynam od języka F # i nie mogę znaleźć składni do wykonania inicjalizacji obiektu, jak w C # 3.
To znaczy:
public class Person {
public DateTime BirthDate { get; set; }
public string Name { get; set; }
}
jak napisać w F #:
var p = new Person { Name = "John", BirthDate = DateTime.Now };
syntax
f#
object-initializers
Mauricio Scheffer
źródło
źródło
odpowiedź z CMS jest zdecydowanie poprawna. Oto tylko jeden dodatek, który może być również pomocny. W języku F # często chcesz pisać typ tylko przy użyciu niezmiennych właściwości. W przypadku używania składni „inicjatora obiektu” właściwości muszą być modyfikowalne. Alternatywą w F # jest użycie nazwanych argumentów, które dają podobną składnię, ale zachowują niezmienność:
Teraz możemy napisać:
Kod wymaga podania nazwy, ale urodziny to opcjonalny argument z pewną wartością domyślną.
źródło
Możesz również pominąć
new
słowo kluczowe i użyć mniej szczegółowej składni:https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/constructors
źródło