function set (Instrucción)

Declara los descriptores de acceso de una propiedad nueva en una clase o interfaz. A menudo, function set aparecerá junto con function get para permitir el acceso de lectura y escritura a una propiedad.

// 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])

Argumentos

  • modifiers
    Opcional. Modificadores que controlan la visibilidad y el comportamiento de la propiedad.

  • propertyname
    Obligatorio. Nombre de la propiedad que se está creando. Deberá ser único dentro de la clase salvo que se pueda utilizar un mismo nombre de propiedad con los descriptores de acceso (get y set) para identificar una propiedad que se pueda leer y escribir.

  • parameter
    Obligatorio. Parámetro formal aceptado por el descriptor de acceso set.

  • type
    Opcional. Tipo de parámetro del descriptor de acceso set. Debe coincidir con el tipo de valor devuelto del descriptor de acceso get, si está definido.

  • body
    Opcional. Una o más instrucciones que definen cómo funciona un descriptor de acceso set.

Comentarios

Se tiene acceso a las propiedades de un objeto de un modo muy similar al que se tiene acceso a un campo, con la salvedad de que las propiedades permiten más control sobre los valores que se almacenan y devuelven en el objeto. Las propiedades pueden ser de sólo lectura, de sólo escritura o de lectura y escritura dependiendo de la combinación de los descriptores de acceso de propiedad get y set definidos en la clase. Las propiedades se utilizan a menudo para ayudar a garantizar que sólo se almacenan valores correctos en un campo private o protected. No es posible asignar un valor a una propiedad de sólo lectura ni leer un valor de una propiedad de sólo escritura.

Un descriptor de acceso set debe tener exactamente un argumento y no puede especificar un tipo de valor devuelto. El descriptor de acceso set puede formar un par con un descriptor de acceso get, que no tiene argumentos y debe especificar un tipo de valor devuelto. Si se utilizan ambos descriptores de acceso para una propiedad, el tipo de valor devuelto del descriptor de acceso get deberá coincidir con el tipo de argumento del descriptor de acceso set.

Una propiedad puede tener un descriptor de acceso get, un descriptor de acceso set o ambos. Sólo el descriptor de acceso get (o set si no hay get) de una propiedad puede tener atributos personalizados que se apliquen a la propiedad como un todo. Ambos descriptores de acceso, get y set, pueden recibir modificadores y atributos personalizados aplicables al descriptor de acceso concreto. Los descriptores de acceso de propiedad no se pueden sobrecargar, pero se pueden ocultar o reemplazar.

Las propiedades se pueden especificar en la definición de una interfaz, pero no se puede dar una implementación en la interfaz.

Ejemplo

El siguiente ejemplo muestra varias declaraciones de propiedad. En él, una propiedad Age queda definida como de lectura y escritura. También se define una propiedad FavoriteColor de sólo lectura.

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 + ".");

Cuando se ejecuta este programa, muestra lo siguiente:

Chris is 27 years old.
Favorite color is red.

Requisitos

Versión .NET

Vea también

Referencia

class (Instrucción)

interface (Instrucción)

function (Instrucción)

function get (Instrucción)

Conceptos

Anotaciones de tipo

Otros recursos

Modificadores