Je commence juste avec F # et je ne trouve pas la syntaxe pour faire l'initialisation d'objet comme en C # 3.
Ie étant donné ceci:
public class Person {
public DateTime BirthDate { get; set; }
public string Name { get; set; }
}
comment écrire ce qui suit en F #:
var p = new Person { Name = "John", BirthDate = DateTime.Now };
syntax
f#
object-initializers
Mauricio Scheffer
la source
la source
la réponse du CMS est tout à fait correcte. Voici juste un ajout qui peut également être utile. En F #, vous souhaitez souvent écrire le type en utilisant simplement des propriétés immuables. Lors de l'utilisation de la syntaxe "object initializer", les propriétés doivent être modifiables. Une alternative en F # est d'utiliser des arguments nommés, ce qui vous donne une syntaxe similaire, mais garde les choses immuables:
Maintenant, nous pouvons écrire:
Le code vous oblige à spécifier le nom, mais l'anniversaire est un argument facultatif avec une valeur par défaut.
la source
Vous pouvez également omettre le
new
mot - clé et utiliser une syntaxe moins verbeuse:https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/members/constructors
la source