Estou apenas começando com F # e não consigo encontrar a sintaxe para fazer a inicialização de objetos como em C # 3.
Ou seja, dado isso:
public class Person {
public DateTime BirthDate { get; set; }
public string Name { get; set; }
}
como faço para escrever o seguinte em F #:
var p = new Person { Name = "John", BirthDate = DateTime.Now };
syntax
f#
object-initializers
Mauricio Scheffer
fonte
fonte
a resposta do CMS é definitivamente correta. Aqui está apenas um acréscimo que também pode ser útil. Em F #, você geralmente deseja escrever o tipo apenas usando propriedades imutáveis. Ao usar a sintaxe do "inicializador de objeto", as propriedades devem ser mutáveis. Uma alternativa em F # é usar argumentos nomeados, que fornecem uma sintaxe semelhante, mas mantém as coisas imutáveis:
Agora podemos escrever:
O código requer que você especifique o nome, mas aniversário é um argumento opcional com algum valor padrão.
fonte
Você também pode omitir a
new
palavra - chave e usar uma sintaxe menos detalhada:https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/constructors
fonte