Aller au contenu

Les propriétés utilisant le mot clé field

Présentation

Au sein du getter et setter d'une propriété, le mot-clé field permet de désigner un attribut généré automatiquement et exposé par cette propriété. Voici un exemple :

public string Name
{
    get;
    set => field = value;
}

L’implémentation de cette propriété est équivalente à cette implémentation que nous connaissons déjà :

private string _name;
public string Name
{
    get => _name;
    set => _name = value;
}

Autrement dit, dans le premier exemple de code proposé ci-dessus, l’arrivée du mot clé field permet de conserver l’implémentation des propriétés simplifiées, tout en ayant la possibilité de personnaliser l’implémentation du setter. Le compilateur continue à générer un attribut privé qui n’est pas visible dans le code (mais « visible » lors de l’exécution), tout en pouvant y accéder dans le getter et setter des propriétés.

Autres exemples

Il est possible de procéder à des vérifications avant de valoriser l’attribut exposé par l’accesseur. Dans l’exemple de code ci-dessous, on vérifie que l’âge est minimum d’un an avant de valoriser l’attribut _age (masqué).

public int Age
{
    get;
    set
    {
        if (value < 0)
            throw new ArgumentOutOfRangeException();

        field = value;
    }
}

Il est aussi possible d’utiliser le mot clé field dans le getter :

public string Label
{
    get => field ?? "";
    set => field = value;
}

Ainsi, si l’attribut _label vaut null, alors une chaîne vide est retournée.