Compartir a través de


Cómo: Crear una propiedad (Visual Basic)

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

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

Para crear una propiedad

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

  2. Si la propiedad toma parámetros, siga la Property palabra clave con el nombre del procedimiento, la lista de parámetros entre paréntesis.

  3. Siga los paréntesis con una As cláusula 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 Get y Set procedimientos, según corresponda. Consulte las instrucciones siguientes.

Para crear un procedimiento Get que recupere un valor de propiedad

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

  2. Coloque las instrucciones de código para recuperar el valor de la propiedad entre las Get instrucciones 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 Return instrucción para devolver el valor de la propiedad al código que llama.

Debe escribir un Get procedimiento para una propiedad de lectura y escritura y para una propiedad de solo lectura. No debe definir un Get procedimiento 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 End Set instrucción .

  2. En la Set instrucción , siga opcionalmente la Set palabra clave con una lista de parámetros entre paréntesis. 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 tipo de la propia propiedad. Si la lista de parámetros no está vacía, puede usar un nombre diferente si procede, pero el parámetro debe tener el mismo tipo de datos que la propia propiedad.

  3. Coloque las instrucciones de código para almacenar un valor en la propiedad entre las Set instrucciones 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 Set procedimiento para una propiedad de lectura y escritura y para una propiedad de solo escritura. No debe definir un Set procedimiento 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