Syntaxe d’initialisation d’object

Je commence juste avec F # et je ne trouve pas la syntaxe pour faire l’initialisation d’object comme en C # 3.

Ie donné ceci:

public class Person { public DateTime BirthDate { get; set; } public ssortingng Name { get; set; } } 

Comment puis-je écrire ce qui suit dans F #:

 var p = new Person { Name = "John", BirthDate = DateTime.Now }; 

Vous pouvez le faire comme ceci:

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

la réponse de CMS est définitivement correcte. Voici juste un ajout qui peut aussi être utile. En F #, vous voulez souvent écrire le type en utilisant uniquement des propriétés immuables. Lors de l’utilisation de la syntaxe “initialisateur d’object”, les propriétés doivent être mutables. Une alternative à F # consiste à utiliser des arguments nommés, ce qui vous donne une syntaxe similaire, mais garde les choses immuables:

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

Maintenant nous pouvons écrire:

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

Le code vous demande de spécifier le nom, mais birthday est un argument facultatif avec une valeur par défaut.