Je vous ai déjà parlé des propriétés automatiques dans l’article sur les nouveautés de C# 3.
Pourtant, je souhaite y revenir car il y a deux ou trois subtilités qui me semblent très intéressantes à utiliser au quotidien dans notre métier de développeur.
Avant les propriétés automatiques, les développeurs écrivaient ceci :
[csharp] public class MyClass{
private string _name;
private int _age;
public string Name
{
get { return _name; }
set { _name = value; }
}
public int Age
{
get { return _age; }
set { _age = value; }
}
}
[/csharp]
Grâce aux propriétés automatiques, le compilateur s’occupe de déclarer les champs privés (_name et _age dans mon exemple). Ce mécanisme permet d’écrire du code plus court et donc moins verbeux :
[csharp] public class MyClass{
public string Name { get; set; }
public int Age { get; set; }
}
[/csharp]
Personnellement, je trouve cette version plus sympa, non ?
Parlons maintenant des subtilités dont j’ai fait référence au début de l’article.
Lorsque vous déclarez une propriété, vous pouvez utiliser des modificateurs de visibilité devant get et set.
Voici deux exemples :
- En ajoutant « private » devant set vous pouvez créer une propriété en lecture-seule,
- En ajoutant « private » devant get vous pouvez créer une propriété en écriture-seule.
Les méthodes de la classe pourront tout de même modifier les valeurs (c’est le principe du private).
[csharp] public class MyClass{
public int EnLectureSeule { get; private set; }
public int EnEcritureSeule { private get; set; }
}
[/csharp]
Ces deux éléments sont intéressants car ils permettent d’ajuster de manière plus fine la visibilité de vos propriétés.
A vous maintenant
Avez-vous déjà essayé les propriétés automatiques avec des modificateurs de visibilité ? Donnez-moi votre avis.