Estoy empezando con F # y no puedo encontrar la sintaxis para realizar la inicialización de objetos como en C # 3.
Es decir, dado esto:
public class Person {
  public DateTime BirthDate { get; set; }
  public string Name { get; set; }
}¿cómo escribo lo siguiente en F #:
var p = new Person { Name = "John", BirthDate = DateTime.Now };
                    
                        syntax
                                f#
                                object-initializers
                                
                    
                    
                        Mauricio Scheffer
fuente
                
                
            fuente

la respuesta de CMS es definitivamente correcta. Aquí hay solo una adición que también puede ser útil. En F #, a menudo desea escribir el tipo simplemente usando propiedades inmutables. Cuando se utiliza la sintaxis de "inicializador de objeto", las propiedades deben ser mutables. Una alternativa en F # es usar argumentos con nombre, lo que le brinda una sintaxis similar, pero mantiene las cosas inmutables:
Ahora podemos escribir:
El código requiere que especifiques el nombre, pero cumpleaños es un argumento opcional con algún valor predeterminado.
fuente
También puede omitir la
newpalabra clave y utilizar una sintaxis menos detallada:https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/constructors
fuente