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.
Pour les cas simples dans lesquels les accesseurs et set
les propriétés n’effectuent get
aucune autre opération que la définition ou la récupération d’une valeur dans un champ de stockage privé, vous pouvez utiliser 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
Les propriétés implémentées automatiquement ne sont pas autorisées pour les déclarations de propriété 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 pouvez constater que vous devez implémenter l’un des corps d’accesseur. Le field
mot clé, ajouté en tant que fonctionnalité d’aperçu en C# 13 déclare une propriété sauvegardée par un champ. Vous pouvez utiliser une propriété de retour de champ pour permettre au compilateur de générer un accesseur lors de l’écriture de l’autre. Vous 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");
}
}
Important
Le field
mot clé est une fonctionnalité d’aperçu en C# 13. Vous devez utiliser .NET 9 et définir votre <LangVersion>
élément preview
dans votre fichier projet afin d’utiliser le field
mot clé contextuel.
Vous devez être prudent à l’aide de la field
fonctionnalité de mot clé dans une classe qui a un champ nommé field
. Le nouveau field
mot clé ombre un champ nommé field
dans l’étendue d’un accesseur de propriété. Vous pouvez modifier le nom de la field
variable ou utiliser le @
jeton pour référencer l’identificateur field
en tant que @field
. Pour plus d’informations, lisez la spécification de fonctionnalité pour le field
mot clé.
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.