Propriétés (C# et Java)

Mise à jour : novembre 2007

En C#, une propriété est un membre nommé d'une classe, struct ou interface qui offre un moyen pratique d'accéder aux champs privés à travers ce qu'on appelle les méthodes d'accesseur get et set.

L'exemple de code suivant déclare une propriété appelée Species pour la classe Animal, qui rend abstrait l'accès à la variable privée appelée name :

public class Animal
{
    private string name;

    public string Species
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }
}

Souvent, la propriété a le même nom que le membre interne auquel elle accède, mais avec une initiale en majuscules, comme Name dans l'exemple précédent, mais le membre interne peut aussi avoir le préfixe _. Notez également le paramètre implicite appelé value dans l'accesseur set. Il possède le type de la variable membre sous-jacente.

Les accesseurs sont en fait représentés en interne comme des méthodes get_X() et set_X() pour maintenir la compatibilité avec les langages .NET Framework, qui ne prennent pas en charge les accesseurs. Une fois la propriété définie, il est ensuite très facile d'obtenir ou de définir sa valeur :

class TestAnimal
{
    static void Main()
    {
        Animal animal = new Animal();
        animal.Species = "Lion";                   // set accessor
        System.Console.WriteLine(animal.Species);  // get accessor

    }
}

Si une propriété n'a qu'un accesseur get, elle est en lecture seule. Si elle n'a qu'un accesseur set, elle est en écriture seule. Si elle a les deux, c'est une propriété en lecture-écriture.

Voir aussi

Concepts

Guide de programmation C#

Référence

Propriétés (Guide de programmation C#)

Autres ressources

Langage de programmation C# pour les développeurs Java