Condividi tramite


Istruzione function get

Aggiornamento: novembre 2007

Consente di dichiarare le funzioni di accesso per una nuova proprietà in una classe o in un'interfaccia. Spesso function get viene utilizzata in combinazione a un'istruzione function set per consentire l'accesso in lettura/scrittura a una proprietà.

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

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

Argomenti

  • modifiers
    Facoltativo. Modificatori che controllano la visibilità e il comportamento della proprietà.

  • propertyname
    Obbligatorio. Nome della proprietà da creare. Questo argomento deve essere univoco all'interno della classe. Tuttavia, uno stesso propertyname può essere utilizzato con entrambe le funzioni di accesso get e set per identificare una proprietà da cui è possibile leggere e in cui è possibile scrivere.

  • type
    Facoltativo. Restituisce il tipo della funzione di accesso get. Deve corrispondere al tipo di parametro della funzione di accesso set, se definita.

  • body
    Facoltativo. Una o più istruzioni che consentono di definire il modo di operare della funzione di accesso get.

Note

Le modalità di accesso alle proprietà di un oggetto sono analoghe alle modalità di accesso a un campo, con la differenza che le proprietà consentono un controllo maggiore sui valori memorizzati in un oggetto e da esso restituiti. Le proprietà possono essere di sola lettura, di sola scrittura o di lettura/scrittura a seconda della combinazione delle funzioni di accesso alle proprietà get e set definite nella classe. Le proprietà vengono spesso utilizzate per garantire che nel campo private o protected vengano memorizzati solo valori appropriati. Non è possibile assegnare un valore a una proprietà di sola lettura o leggere una valore da una proprietà di sola scrittura.

Una funzione di accesso get, che deve specificare un tipo restituito, non dispone di argomenti. Può essere accoppiata a una funzione di accesso set, che dispone di un solo argomento ma non di un tipo restituito. Se per la proprietà vengono utilizzate entrambe le funzioni di accesso, il tipo restituito della funzione di accesso get deve corrispondere al tipo di argomento della funzione di accesso set.

Per una proprietà è possibile specificare una delle funzioni di accesso get o set oppure entrambe. Solo alla funzione di accesso get (o set, se get non è presente) di una proprietà possono essere assegnati attributi personalizzati che hanno effetto sulla proprietà nel suo complesso. Sia a get che a set possono essere assegnati modificatori e attributi personalizzati che hanno effetto sulla sola funzione di accesso. Le funzioni di accesso alle proprietà non possono essere sottoposte a overload. Possono invece essere nascoste o sottoposte a override.

È possibile specificare proprietà nella definizione di un'interfaccia, mentre non è possibile fornire alcuna implementazione nell'interfaccia.

Esempio

Nell'esempio seguente vengono illustrate varie dichiarazioni di proprietà. Viene definita una proprietà Age di lettura/scrittura. Viene inoltre definita una proprietà FavoriteColor di sola lettura.

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 age.
chris.Age = 27;
// Read chris age.
print("Chris is " + chris.Age + " years old.");

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

Una volta eseguito, il programma restituirà il seguente output:

Chrisis 27 years old.
Favorite color is red.

Requisiti

Versione .NET

Vedere anche

Concetti

Annotazione di tipi

Riferimenti

Istruzione class

Istruzione interface

Istruzione function

Istruzione function set

Altre risorse

Modificatori