Compartir a través de


Instrucción Set (Visual Basic)

Declara un Set procedimiento de propiedad usado para asignar un valor a una propiedad.

Sintaxis

[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]  
    [ statements ]  
End Set  

Partes

attributelist
Opcional. Consulte Lista de atributos.

accessmodifier
Opcional en como máximo una de las instrucciones Get y Set de esta propiedad. Puede ser uno de los siguientes:

Consulte Niveles de acceso en Visual Basic.

value
Opcional. Parámetro que contiene el nuevo valor de la propiedad . Si no se proporciona (es decir, si la lista de parámetros no está presente o está vacía), se define un parámetro implícito denominado value . El tipo de datos de este parámetro implícito es el tipo de datos de la propiedad donde se declara esta Set instrucción.

datatype
Obligatorio si value está presente y Option Strict es On. No se puede presentar si value no se da. Tipo de datos del value parámetro. El tipo de datos especificado debe ser el mismo que el tipo de datos de la propiedad donde se declara esta Set instrucción.

statements
Opcional. Una o varias instrucciones que se ejecutan cuando se llama al Set procedimiento de propiedad.

End Set
Obligatorio. Finaliza la definición del Set procedimiento de propiedad.

Observaciones

Cada propiedad debe tener un Set procedimiento de propiedad a menos que la propiedad esté marcada como ReadOnly. El Set procedimiento se usa para establecer el valor de la propiedad .

Visual Basic llama automáticamente al procedimiento de Set 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 Set procedimiento durante las asignaciones de propiedades. Si no proporciona un parámetro para Set, el entorno de desarrollo integrado (IDE) usa un parámetro implícito denominado value. El parámetro contiene el valor que se va a asignar a la propiedad . Normalmente, este valor se almacena en una variable local privada y se devuelve cada vez que se llama al Get procedimiento.

El cuerpo de la declaración de propiedad solo puede contener los procedimientos y Set de Get la propiedad entre la instrucción Property y la End Property instrucción . No puede almacenar nada más que esos procedimientos. En concreto, no puede almacenar el valor actual de la propiedad. Debe almacenar este valor fuera de la propiedad, ya que si lo almacena dentro de cualquiera de los procedimientos de propiedad, el otro procedimiento de propiedad no puede acceder a él. El enfoque habitual es almacenar el valor en una variable privada declarada en el mismo nivel que la propiedad . Debe definir un Set procedimiento dentro de la propiedad a la que se aplica.

El Set procedimiento tiene como valor predeterminado el nivel de acceso de su propiedad contenedora a menos que se use accessmodifier en la Set instrucción .

Reglas

  • Niveles de acceso mixto. Si va a definir una propiedad de lectura y escritura, puede especificar opcionalmente un nivel de acceso diferente para el Get procedimiento o Set , pero no ambos. Si lo hace, 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 Friend, puede declarar el Set procedimiento Private, pero no Public.

    Si va a definir una WriteOnly propiedad, el Set procedimiento representa toda la propiedad. No se puede declarar un nivel de acceso diferente para Set, porque eso establecería dos niveles de acceso para la propiedad .

Comportamiento

  • Devolver desde un procedimiento de propiedad. Cuando el Set procedimiento vuelve al código que realiza la llamada, la ejecución continúa siguiendo la instrucción que proporcionó el valor que se va a almacenar.

    Set los procedimientos de propiedad pueden devolverse mediante la instrucción Return o la instrucción Exit.

    Las Exit Property instrucciones y Return provocan una salida inmediata de un procedimiento de propiedad. Cualquier número de Exit Property instrucciones y Return puede aparecer en cualquier parte del procedimiento y puede mezclar Exit Property instrucciones y Return .

Ejemplo

En el ejemplo siguiente se usa la Set instrucción 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

Consulte también