Propriétés (Guide de programmation C#)
Mise à jour : novembre 2007
Les propriétés sont des membres offrant un mécanisme souple pour la lecture, l'écriture ou le calcul des valeurs de champs privés. Elles peuvent être utilisées comme si elles étaient des membres de données publiques, mais en fait, ce sont des méthodes spéciales appelées accesseurs. Elles facilitent l'accès aux données tout en préservant la sécurité et la souplesse des méthodes.
Dans cet exemple, la classe TimePeriod stocke une durée. En interne, la classe stocke la durée en secondes, mais avec une propriété appelée Hours, un client peut la spécifier en heures. Les accesseurs de la propriété Hours assurent la conversion entre heures et secondes.
Exemple
class TimePeriod
{
private double seconds;
public double Hours
{
get { return seconds / 3600; }
set { seconds = value * 3600; }
}
}
class Program
{
static void Main()
{
TimePeriod t = new TimePeriod();
// Assigning the Hours property causes the 'set' accessor to be called.
t.Hours = 24;
// Evaluating the Hours property causes the 'get' accessor to be called.
System.Console.WriteLine("Time in hours: " + t.Hours);
}
}
// Output: Time in hours: 24
Vue d'ensemble des propriétés
Avec des propriétés, une classe peut exposer de manière publique l'obtention et la définition de valeurs, tout en masquant le code d'implémentation ou de vérification.
Un accesseur de propriété get permet de retourner la valeur de propriété, et un accesseur set est utilisé pour assigner une nouvelle valeur. Ces accesseurs peuvent avoir des niveaux d'accès différents. Pour plus d'informations, consultez Accessibilité de l'accesseur asymétrique (Guide de programmation C#).
Le mot clé value sert à définir la valeur assignée par l'indexeur set.
Les propriétés qui n'implémentent pas de méthode set sont en lecture seule.
Pour les propriétés simples qui ne requièrent aucun code d'accesseur personnalisé, pensez à utiliser les propriétés implémentées automatiquement. Pour plus d'informations, consultez Propriétés implémentées automatiquement (Guide de programmation C#).
Rubriques connexes
Comparaison entre propriétés et indexeurs (Guide de programmation C#)
Accessibilité de l'accesseur asymétrique (Guide de programmation C#)
Propriétés implémentées automatiquement (Guide de programmation C#)
Spécification du langage C#
Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.
1.6.7.2 Propriétés
10.2.9.1 Noms de membres réservés pour les propriétés
10.7 Propriétés