Cómo: Crear una propiedad
Actualización: noviembre 2007
Una definición de propiedad se agrega entre una instrucción Property y una instrucción End Property Dentro de esta definición, se define un procedimiento Get, un procedimiento Set o ambos. Todo el código de la propiedad está incluido 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 sólo lectura, se define únicamente Get y para una propiedad de sólo escritura, Set.
Para crear una propiedad
Fuera de cualquier propiedad o procedimiento, utilice Property (Instrucción), seguido de una instrucción End Property.
Si la propiedad acepta parámetros, agregue detrás de la palabra clave Property el nombre del procedimiento y, a continuación, la lista de parámetros entre paréntesis.
Agregue detrás de los paréntesis 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 sólo escritura.
Agregue los procedimientos Get y Set, tal como sea preciso. Vea las direcciones siguientes.
Para crear un procedimiento Get que recupera un valor de la propiedad
Entre las instrucciones Property y End Property, escriba Get (Instrucción), seguido de una instrucción End Get. No necesita definir ningún parámetro para el procedimiento Get.
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.
Utilice 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, así como para una propiedad de sólo lectura. No debe definir un procedimiento Get para una propiedad de sólo escritura.
Para crear un procedimiento Set que escribe el valor de una propiedad
Entre las instrucciones Property y End Property, escriba Instrucción Set (Visual Basic), seguido de una instrucción End Set.
En la instrucción Set, agregue detrás de la palabra clave Set una lista de parámetros entre paréntesis. Esta lista de parámetros debe incluir por lo menos un parámetro de valor para el valor pasado por el código de llamada. El nombre predeterminado para este parámetro de valor es Value, pero puede utilizar un nombre diferente, si es preciso. El parámetro de valor debe tener el mismo tipo de datos que la propiedad misma.
Coloque las instrucciones de código para almacenar 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.
Utilice el parámetro de valor para aceptar el valor proporcionado por el código de llamada. Puede almacenar este valor directamente en una instrucción de asignación o utilizarlo 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, así como para una propiedad de sólo escritura. No debe definir un procedimiento Set para una propiedad de sólo lectura.
Ejemplo
El ejemplo siguiente crea una propiedad de lectura y escritura que almacena un nombre completo como dos nombres constitutivos, el nombre y el apellido. Cuando el código de llamada lee fullName, el procedimiento Get combina los dos nombres constitutivos y devuelve el nombre completo. Cuando el código de llamada asigna un nuevo nombre completo, el procedimiento Set intenta dividirlo en dos nombres constitutivos. Si no encuentra espacio, lo almacena 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
El ejemplo siguiente muestra las llamadas típicas a los procedimientos de propiedad de fullName. La primera llamada establece el valor de la propiedad y la segunda la recupera.
fullName = "MyFirstName MyLastName"
MsgBox(fullName)
Vea también
Tareas
Cómo: Declarar una propiedad con niveles de acceso mixtos
Cómo: Llamar a un procedimiento de propiedad
Cómo: Declarar y llamar a una propiedad predeterminada en Visual Basic
Cómo: Establecer un valor en una propiedad
Cómo: Obtener un valor de una propiedad
Conceptos
Procedimientos en Visual Basic