Instrucción Set (Visual Basic)
Actualización: noviembre 2007
Declara un procedimiento de propiedad Set que se utiliza para asignar un valor a una propiedad.
[ <attributelist> ] [ accessmodifier ] Set (ByVal value [ As datatype ])
[ statements ]
End Set
Partes
attributelist
Opcional. Vea la Lista de atributos.accessmodifier
Opcional en un máximo de una de las instrucciones Get y Set de esta propiedad. Puede ser una de las siguientes:value
Obligatorio. Parámetro que contiene el nuevo valor de la propiedad.datatype
Obligatorio si Option Strict es On. Tipo de datos del parámetro value. El tipo de datos especificado debe ser el mismo que el tipo de datos de la propiedad donde se declara esta instrucción Set.statements
Opcional. Una o más instrucciones que se ejecutan cuando se llama al procedimiento de propiedad Set.End Set
Obligatorio. Termina la definición del procedimiento de propiedad Set.
Comentarios
Cada propiedad debe tener un procedimiento de propiedad Set, a menos que la propiedad se marque como ReadOnly. El procedimiento Set se utiliza para establecer el valor de la propiedad.
Visual Basic llama automáticamente al procedimiento Set de una propiedad cuando una instrucción de asignación proporciona un valor que se va a almacenar en la propiedad.
Visual Basic pasa un parámetro al procedimiento Set durante las asignaciones de propiedades. Si no se especifica un parámetro para Set, el entorno de desarrollo integrado (IDE) utiliza un parámetro implícito denominado value. El parámetro contiene el valor que se va a asignar a la propiedad. Generalmente, almacena este valor en una variable local privada y lo devuelve cada vez que se llama al procedimiento Get.
El cuerpo de la declaración de propiedad sólo puede contener los procedimientos Get y Set de la propiedad entre Property (Instrucción) y End Property No puede almacenar nada distinto de esos procedimientos. En particular, no puede almacenar el valor actual de la propiedad. Este valor debe almacenarse fuera de la propiedad, ya que si lo almacena en uno de los procedimientos de la propiedad, el otro procedimiento no puede tener acceso a él. El enfoque habitual consiste en almacenar el valor en una variable Private (Visual Basic) declarada en el mismo nivel que la propiedad. Debe definir un procedimiento Set dentro de la propiedad a la que se aplica.
El procedimiento Set tiene como valor predeterminado el nivel de acceso de su propiedad contenedora, a menos que utilice accessmodifier en la instrucción Set.
Reglas
Niveles mixtos de acceso. Si define una propiedad de lectura y escritura, puede especificar un nivel de acceso diferente para el procedimiento Get o para el procedimiento Set, pero no para ambos. Si hace esto, el nivel de acceso del procedimiento debe ser más restrictivo que el nivel de acceso de la propiedad. Por ejemplo, si la propiedad se declara como Friend, puede declarar el procedimiento Set como Private, pero no como Public.
Si define una propiedad WriteOnly, el procedimiento Set representa la propiedad completa. No puede declarar un nivel de acceso diferente para Set, porque esto establecería dos niveles de acceso para la propiedad.
Comportamiento
Volver de un procedimiento de propiedad. Cuando el procedimiento Set vuelve al código de llamada, la ejecución continúa a partir de la instrucción que proporcionó el valor que se va a almacenar.
Los procedimientos de propiedad Set pueden volver utilizando Instrucción Return (Visual Basic) o Instrucción Exit (Visual Basic).
Las instrucciones Exit Property y Return provocan una salida inmediata de un procedimiento de propiedad. Puede aparecer cualquier número de instrucciones Exit Property y Return en cualquier parte del procedimiento y puede combinar instrucciones Exit Property y Return.
Ejemplo
En el siguiente ejemplo se utiliza la instrucción Set para establecer el valor de una propiedad.
Class propClass
Private propVal As Integer
Property prop1() As Integer
Get
Return propVal
End Get
Set(ByVal value As Integer)
propVal = value
End Set
End Property
End Class
Vea también
Tareas
Cómo: Agregar campos y propiedades a una clase