Partager via


field - Déclarations de propriétés sauvegardées par champ

Utilisez le mot clé fieldcontextuel, introduit en C# 14, dans un accesseur de propriété pour accéder au champ de stockage synthétisé du compilateur d’une propriété. À l’aide de cette syntaxe, vous pouvez définir le corps d’un ou set d’un get accesseur et laisser le compilateur générer l’autre accesseur tel qu’il se trouve dans une propriété implémentée automatiquement.

La documentation de référence du langage C# décrit la version la plus récente du langage C#. Il contient également la documentation initiale des fonctionnalités dans les préversions publiques pour la prochaine version du langage.

La documentation identifie toute fonctionnalité introduite en premier dans les trois dernières versions de la langue ou dans les préversions publiques actuelles.

Conseil / Astuce

Pour savoir quand une fonctionnalité a été introduite en C#, consultez l’article sur l’historique des versions du langage C#.

L’ajout du mot clé contextuel fournit un chemin d’accès fluide pour ajouter des avantages tels que la vérification de field plage à une propriété implémentée automatiquement. Cette pratique est illustrée dans l’exemple suivant :

class TimePeriod4
{
    public double Hours {
        get;
        set => field = (value >= 0)
            ? value
            : throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
    }
}

Vous pouvez implémenter la Hours propriété en tant que propriété implémentée automatiquement. Ensuite, vous découvrez que vous souhaitez vous protéger contre une valeur négative. Utilisez field et fournissez la vérification de plage dans l’accesseur set . Vous n’avez pas besoin de déclarer le champ de stockage manuellement ou de fournir un corps pour l’accesseur get .

Pour plus d’informations, consultez les articles Propriétés et Indexeurs.

spécification du langage C#

Pour plus d'informations, voir la spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.