Share via


function set, instruction

Déclare les accesseurs d'une nouvelle propriété dans une classe ou une interface. L'instruction function set est souvent associée à une instruction function get pour permettre l'accès en lecture/écriture à une propriété.

// Syntax for the set accessor of a property in a class.
 [modifiers] function set propertyname(parameter [: type]) {
   [body]
}

// Syntax for the set accessor of a property in an interface.
[modifiers] function set propertyname(parameter [: type])

Arguments

  • modifiers
    Facultatif. Modificateurs qui contrôlent la visibilité et le comportement de la propriété.

  • propertyname
    Obligatoire. Nom de la propriété qui est créée. Elle doit être unique au sein de la classe même si le même propertyname peut être utilisé avec les accesseurs get et set pour identifier une propriété qui peut être lue et dans laquelle il est possible d'écrire.

  • parameter
    Obligatoire. Paramètre formel accepté par l'accesseur set.

  • type
    Facultatif. Type de paramètre de l'accesseur set. Celui-ci doit correspondre au type de retour de l'accesseur get, si ce dernier est défini.

  • body
    Facultatif. Une ou plusieurs instructions qui définissent le mode de fonctionnement d'un accesseur set.

Notes

L'accès aux propriétés d'un objet est pratiquement identique à l'accès à un champ, à la seule différence que les propriétés permettent de mieux contrôler les valeurs stockées dans l'objet et retournées à partir de celui-ci. Les propriétés peuvent être en lecture seule, en écriture seule ou en lecture-écriture selon la combinaison des accesseurs de propriété get et set définis dans la classe. Les propriétés sont souvent utilisées pour aider à s'assurer que seules les valeurs appropriées sont stockées dans un champ private ou protected. Vous ne pouvez pas assigner de valeur à une propriété en lecture seule ou lire une valeur dans une propriété en écriture seule.

Un accesseur set doit avoir exactement un argument et ne peut pas spécifier de type de retour. L'accesseur set peut être associé à un accesseur get, qui, lui, ne possède pas d'argument, mais doit spécifier un type de retour. Si les deux accesseurs sont utilisés pour une propriété, le type de retour de l'accesseur get doit correspondre au type d'argument de l'accesseur set.

Une propriété peut avoir uniquement un accesseur get, uniquement un accesseur set ou les deux. Seul l'accesseur get (ou l'accesseur set en l'absence d'un accesseur get) d'une propriété peut posséder des attributs personnalisés qui s'appliquent globalement à la propriété. Les accesseurs get et set peuvent avoir des modificateurs et des attributs personnalisés qui s'appliquent à l'accesseur individuel. Il est impossible de surcharger des accesseurs de propriété ; en revanche, ils peuvent être masqués ou substitués.

Vous pouvez spécifier des propriétés dans la définition d'une interface, mais vous ne pouvez pas fournir d'implémentation dans l'interface.

Exemple

L'exemple suivant illustre plusieurs déclarations de propriété. Une propriété Age est définie avec un accès en lecture-écriture. Une propriété FavoriteColor en lecture seule est également définie.

class CPerson {
   // These variables are not accessible from outside the class.
   private var privateAge : int;
   private var privateFavoriteColor : String;

   // Set the initial favorite color with the constructor.
   function CPerson(inputFavoriteColor : String) {
      privateAge = 0;
      privateFavoriteColor = inputFavoriteColor;
   }

   // Define an accessor to get the age.
   function get Age() : int {
      return privateAge;
   }
   // Define an accessor to set the age, since ages change.
   function set Age(inputAge : int) {
      privateAge = inputAge;
   }

   // Define an accessor to get the favorite color.
   function get FavoriteColor() : String {
      return privateFavoriteColor;
   }
   // No accessor to set the favorite color, making it read only.
   // This assumes that favorite colors never change.
}

var chris : CPerson = new CPerson("red");

// Set Chris's age.
chris.Age = 27;
// Read Chris's age.
print("Chris is " + chris.Age + " years old.");

// FavoriteColor can be read from, but not written to.
print("Favorite color is " + chris.FavoriteColor + ".");

Lorsque ce programme est exécuté, il affiche le résultat suivant :

Chris is 27 years old.
Favorite color is red.

Configuration requise

Version .NET

Voir aussi

Référence

class, instruction

interface, instruction

function, instruction

function get, instruction

Concepts

Annotation de type

Autres ressources

Modificateurs