TOC

This article is currently in the process of being translated into French (~99% done).

C# 3.0:

Automatic properties

Une réelle plaie pour tout les développeurs qui écrivent du code orienté objet a toujours été la déclaration de propriétés publiques pour toutes leurs variables privées. C'est beaucoup de travail fastidieux, surtout parce que presque toutes les propriétés seront de simples mappages get et set à leur variable privée, sans aucune intelligence supplémentaire, comme ceci :

private string name;

public string Name
{
    get { return name; }
    set { name = value; }
}

Avec propriété simple comme celle-là, nous aurions tout aussi bien pu déclarer la variable comme "public" et l'utiliser directement, au lieu d'ajouter une couche supplémentaire de propriété. Cependant, les directives de la programmation orientés objet nous demandent de la faire de cette manière, et la plupart d'entrer nous résistent à la tentation de tomber dans la facilité. Avec C# 3.0, nous n'avons désormais plus à faire face à ce dilemme ! On peut désormais écrire l'exemple ci-dessus comme ceci à la place :

public string Name
{
    get;
    set;
}

Ou même en utilisant moins de place, comme ceci :

public string Name { get; set; }

Aucune déclaration de variable et aucun code pour obtenir et définir la valeur de la variable. Tout cela est géré automatiquement par le compilateur, qui créera automatiquement un champ privé et remplira les méthodes "get" et "set" avec le code de base requis pour lire et écrire dans la variable. D'un point de vue extérieur, ça ressemblera à une propriété ordinaire, mais vous aurez économisé beaucoup de saisie et votre classe sera moins grosse. Bien entendu, vous pouvez toujours utiliser l'ancienne méthode, comme dans notre premier exemple, il s'agit simplement d'une fonctionnalité supplémentaire que vous pouvez utiliser, si vous le souhaitez.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!