una tipos poo objetos metodos metodo instanciar inicializacion ejemplos crear como clases clase syntax f# object-initializers

syntax - tipos - instanciar una clase c#



Sintaxis de inicialización de objetos (2)

Puedes hacerlo así:

let p = new Person (Name = "John", BirthDate = DateTime.Now)

Estoy comenzando con F # y no puedo encontrar la sintaxis para hacer la inicialización de objetos como en C # 3.

Es decir, 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 };


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. Al usar la sintaxis de "inicializador de objetos", las propiedades deben ser mutables. Una alternativa en F # es usar argumentos con nombre, lo que le da una sintaxis similar, pero mantiene las cosas inmutables:

type Person(name:string, ?birthDate) = member x.Name = name member x.BirthDate = defaultArg birthDate System.DateTime.MinValue

Ahora podemos escribir:

let p1 = new Person(name="John", birthDate=DateTime.Now) let p2 = new Person(name="John")

El código requiere que especifiques el nombre, pero el cumpleaños es un argumento opcional con algún valor predeterminado.