Cómo: Crear una propiedad (Visual Basic)

Debe incluir una definición de propiedad entre una instrucción Property y una instrucción End Property. Dentro de esta definición, puede definir un procedimiento Get, un procedimiento Set o ambos. Todo el código de la propiedad se encuentra dentro de estos procedimientos.

El procedimiento Get recupera el valor de la propiedad y el procedimiento Set almacena un valor. Si desea que la propiedad tenga acceso de lectura y escritura, debe definir ambos procedimientos. Para una propiedad de solo lectura, solo se define Get y para una de solo escritura, solo se define Set.

Creación de una propiedad

  1. Fuera de cualquier propiedad o procedimiento, use una instrucción Property, seguida de una instrucción End Property.

  2. Si la propiedad toma parámetros, el nombre del procedimiento debe ir a continuación de la palabra clave Property y, a continuación, la lista de parámetros entre paréntesis.

  3. Después de los paréntesis incluya una cláusula As para especificar el tipo de datos del valor de la propiedad. Debe especificar el tipo de datos incluso para una propiedad de solo escritura.

  4. Agregue los procedimientos Get y Set según corresponda. Consulte las instrucciones siguientes.

Para crear un procedimiento Get que recupere un valor de propiedad

  1. Entre las instrucciones Property y End Property, escriba una instrucción Get, seguida de una instrucción End Get. No es necesario definir ningún parámetro para el procedimiento Get.

  2. Coloque las instrucciones de código para recuperar el valor de la propiedad entre las instrucciones Get y End Get. Este código puede incluir otros cálculos y manipulaciones de datos además de generar y devolver el valor de la propiedad.

  3. Use una instrucción Return para devolver el valor de la propiedad al código de llamada.

Debe escribir un procedimiento Get para una propiedad de lectura y escritura, y para una propiedad de solo lectura. No debe definir un procedimiento Get para una propiedad de solo escritura.

Para crear un procedimiento Set que escriba el valor de una propiedad

  1. Entre las instrucciones Property y End Property, escriba una instrucción Set, seguida de una instrucción End Set.

  2. En la instrucción Set, tiene la opción de incluir una lista de parámetros entre paréntesis después de la palabra clave Set. Si la lista de parámetros no está presente o está vacía, se define un parámetro implícito denominado Value, cuyo tipo es el de la propia propiedad. Si la lista de parámetros no está vacía, puede usar otro nombre si procede, pero el parámetro debe tener el mismo tipo de datos que la propiedad en sí.

  3. Coloque las instrucciones de código para almacenar un valor en la propiedad entre las instrucciones Set y End Set. Este código puede incluir otros cálculos y manipulaciones de datos además de validar y almacenar el valor de la propiedad.

  4. Use el parámetro value para aceptar el valor proporcionado por el código de llamada. Puede almacenar este valor directamente en una instrucción de asignación o usarlo en una expresión para calcular el valor interno que se va a almacenar.

Debe escribir un procedimiento Set para una propiedad de lectura y escritura, y para una propiedad de solo escritura. No debe definir un procedimiento Set para una propiedad de solo lectura.

Ejemplo

En el ejemplo siguiente se crea una propiedad de lectura y escritura que almacena un nombre completo como dos nombres constituyentes, el nombre y el apellido. Cuando el código de llamada lee fullName, el procedimiento Get combina los dos nombres constituyentes y devuelve el nombre completo. Cuando el código de llamada asigna un nuevo nombre completo, el procedimiento Set intenta dividirlo en dos nombres constituyentes. Si no encuentra un espacio, lo almacena todo como nombre.

Dim firstName, lastName As String
Property fullName() As String
    Get
      If lastName = "" Then
          Return firstName
      Else
          Return firstName & " " & lastName
      End If

    End Get
    Set(ByVal Value As String)
        Dim space As Integer = Value.IndexOf(" ")
        If space < 0 Then
            firstName = Value
            lastName = ""
        Else
            firstName = Value.Substring(0, space)
            lastName = Value.Substring(space + 1)
        End If
    End Set
End Property

En el ejemplo siguiente se muestran llamadas típicas a los procedimientos de propiedad de fullName. La primera llamada establece el valor de propiedad y la segunda llamada la recupera.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

Consulte también