Partager via


Mot clé set (référence C#)

Le mot clé set définit une méthode accessor dans une propriété ou un indexeur qui assigne une valeur à l’élément de la propriété ou de l’indexeur. Pour plus d’informations et d’exemples, consultez Propriétés, Propriétés implémentées automatiquement et Indexeurs.

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#.

Pour les cas simples où les get accesseurs et set les propriétés n’effectuent aucune autre opération que la définition ou la récupération d’une valeur dans un champ de stockage privé, utilisez des propriétés implémentées automatiquement. L’exemple suivant implémente Hours en tant que propriété implémentée automatiquement.

class TimePeriod3
{
    public double Hours { get; set; }
}

Important

Vous ne pouvez pas utiliser les propriétés implémentées automatiquement pour les déclarations de propriétés d’interface ou la déclaration d’implémentation d’une propriété partielle. Le compilateur interprète la syntaxe correspondant à une propriété implémentée automatiquement comme la déclaration déclarante, et non comme une déclaration d’implémentation.

Vous devrez peut-être implémenter l’un des corps d’accesseur. Le field mot clé, ajouté en C# 14, déclare une propriété adossée à un champ. Utilisez une propriété adossée à un champ pour permettre au compilateur de générer un accesseur lors de l’écriture de l’autre. Utilisez le field mot clé pour accéder au champ de stockage synthétisé du compilateur :

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

Souvent, l’accesseur set se compose d’une seule instruction qui assigne une valeur, comme dans l’exemple précédent. Vous pouvez implémenter l’accesseur set comme membre expression-bodied. L’exemple suivant implémente l’accesseur get et l’accesseur set en tant que membres expression-bodied.

class TimePeriod2
{
    private double _seconds;

    public double Seconds
    {
        get => _seconds;
        set => _seconds = value;
    }
}

L’exemple suivant définit un accesseur get et un accesseur set pour une propriété nommée Seconds. Il utilise un champ privé nommé _seconds pour stocker la valeur de la propriété.

class TimePeriod
{
    private double _seconds;

    public double Seconds
    {
        get { return _seconds; }
        set
        {
            if (value < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(value), "The value of the time period must be non-negative.");
            }
            _seconds = value;
        }
    }
}

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.

Voir aussi