Una propiedad predeterminada o por defecto, es aquella que nos permite su manipulación omitiendo el
nombre.
Al declarar una propiedad por defecto, debemos utilizar la palabra clave Default al comienzo de la
sentencia de declaración, siendo obligatorio además, que dicho procedimiento de propiedad reciba al
menos un parámetro.
La ventaja a la hora de trabajar con una propiedad de este tipo en un objeto, reside en que no
necesitamos indicar su nombre, sólo es preciso especificar su parámetro.
Debido a la naturaleza de este tipo de propiedad, sólo es posible crear una propiedad predeterminada
en cada clase.
Una de las situaciones más idóneas en una clase para crear una propiedad predeterminada, serían
aquellos elementos en los que tengamos que manejar un conjunto de valores a través de un array, es
decir, la variable de propiedad sería el array que manipularíamos a través del correspondiente
procedimiento de propiedad. De esta manera, para asignar y obtener valores de este tipo de propiedad,
tendremos que utilizar el índice del array que internamente la gestiona.
Pongamos como ejemplo, el hecho de que el trabajo desempeñado por el empleado le supone realizar
viajes a diferentes ciudades; para llevar un control de los viajes realizados, crearemos una nueva
propiedad, que además será predeterminada. Veamos este ejemplo en el Código fuente 230.
Module General
Sub Main()
Dim loEmpleado As New Empleado()
Dim liContador As Integer
' primero manejamos la propiedad predeterminada
' igual que una normal
loEmpleado.Viajes(0) = "Valencia"
' aquí manipulamos la propiedad predeterminada
' sin indicar su nombre
loEmpleado(1) = "Toledo"
For liContador = 0 To 1
Console.WriteLine("Visita: {0} - Ciudad: {1}", _
liContador, loEmpleado(liContador))
Next
Console.ReadLine()
End Sub
End Module
Public Class Empleado
' este es el array asociado a
' la propiedad predeterminada
Private msViajes() As String
' declaración de la propiedad predeterminada
Default Public Property Viajes(ByVal Indice As Integer) As String
Get
' para devolver un valor, empleamos
' el número de índice pasado
' como parámetro
Return msViajes(Indice)
End Get
Set(ByVal Value As String)
' para asignar un valor a la propiedad,
' comprobamos primero si el array está vacío
' comprobar si el array está vacío,
' al ser el array también un objeto,
' utilizamos el operador Is
If msViajes Is Nothing Then
ReDim msViajes(0)
Else
' si el array ya contenía valores,
' añadir un nuevo elemento
ReDim Preserve msViajes(UBound(msViajes) + 1)
End If
' asignar el valor al array
msViajes(Indice) = Value
End Set
End Property
End Class
Código fuente 230
No hay comentarios:
Publicar un comentario