Langage C# – Les différentes implémentations des propriétés

Dans les classes C#, les propriétés sont des accesseurs permettant :

  • De centraliser des blocs d’instructions, qui seront exécutés lors de la lecture ou l’écriture de la valeur dans l’attribut qu’il gère
  • De réaliser des liaisons de données dans les logiciels, afin d’afficher des informations dans les champs des formulaires et récupérer les informations saisies ou sélectionnées par l’utilisateur

Lors de l’évolution du langage C#, différentes implémentations sont apparues. Même si les implémentations présentées ci-dessous sont différentes, elles sont équivalentes.

Version 1 du langage C#

private string _Nom;
public string Nom
{
    get { return _Nom; }
    set { _Nom = value; }
}

Version 3 du langage C#

public string Nom { get; set; }

Dans cette version, le développeur écrit uniquement la déclaration de l’accesseur. Lors de la compilation, un attribut avec un nom aléatoire de même type que l’accesseur est généré dans la classe, ainsi que l’implémentation du getter et setter de l’accesseur. De ce fait, l’implémentation obtenue dans le code IL (Intermediate Language) après compilation est identique à celle de la version 1.

Version 6 du langage C#

private string _Nom;
public string Nom { get => _Nom; set => _Nom = value; }

Cette version du langage C# introduisait les « membres sous forme d’expression » permettant cette déclaration simplifiée de l’accesseur, autorisée lors que le getter ou le setter contient une seule instruction. Cette syntaxe est similaire à l’implémentation d’expressions lambda.

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j’alterne les missions de formation et d’ingénierie avec cette plateforme. J’écris ce blog pour transmettre mes connaissances à tout développeur, qu’il soit débutant ou expérimenté.