Se trata de utilizar la sintaxis de propiedad en lugar de la de variable pública.
Al utilizar esta opción, podemos recoger los datos realizando una validación de los mismos antes de asignar el dato a la variable interna nuestra dentro de la clase.
Es decir el dato esta formado por dos componentes:
La propiedad que es la parte visible.
La variable interna de la clase, que está oculta.
La captura de los datos es como sigue:
La propiedad dispone de la sintaxis siguiente:
Property Propiedad() as String
Get ‘ Lectura
Return DatoInterno
End Get
Set(ByVal value as String) ‘ Asignación
If value <> "" Then DatoInterno = value
End Set
End Property
Podemos observar que dispone de dos partes, una de lectura, Get, y otra de asignación, Set.
En la de lectura se devuelve el dato de la variable que internamente la representa.
En la de asignación, podemos escribir código de control que comprueba que el valor recibido esté dentro de los márgenes que están previstos.
Set(ByVal value as String) ‘ Asignación
If value <> "" Then DatoInterno = value
End Set
Como vemos, en el ejemplo, solo se admite el dato si es distinto de nulo.
De esta forma podemos admitir o no los datos según nos interese.
Es aconsejable que el valor de la variable esté asignado con un valor por defecto en la creación de la variable, de esa forma se cubre cualquier posibilidad y siempre dispondremos de unos valores por defecto.
Dim DatoInterno As String = "Valor por defecto"
Y si la inicialización del objeto fuera
Dim Objeto As New Ejemplo("")
Al ejecutarse
Console.WriteLine(Objeto.Propiedad)
El resultado sería:
Cambio de contenido
Un ejemplo de su utilización sería:
Sub Main()
' Dim Objeto As New Ejemplo("Contenido de la propiedad")
Dim Objeto As New Ejemplo("") ‘ se rechaza la inicialización
Console.WriteLine(Objeto.Propiedad)
Objeto.Propiedad = "" ‘ Se rechaza
Console.WriteLine(Objeto.Propiedad)
Objeto.Propiedad = "Cambio de contenido" ‘ Se admite
Console.WriteLine(Objeto.Propiedad)
Console.ReadKey()
End Sub
Podemos seleccionar una de las dos opciones en la inicialización del objeto:
' Dim Objeto As New Ejemplo("Contenido de la propiedad")
Dim Objeto As New Ejemplo("")
Después podemos observar como se asigna un valor nulo a la propiedad, y que éste se rechaza por no cumplir los requisitos, se visualiza su contenido que no ha sufrido cambios, y después se asigna un valor que sí es válido, y que sí que se visualiza correctamente.
El resultado de la ejecución sería:
Valor por defecto
Valor por defecto
Cambio de contenido
Y la clase completa sería:
Public Class Ejemplo
Dim DatoInterno As String = "Valor por defecto"
Private OtroInterno As Integer
Public DatoExterno As String
Property Propiedad() as String
Get
Return DatoInterno
End Get
Set(ByVal value as String)
If value <> "" Then DatoInterno = value
End Set
End Property
Sub New(ByVal Dato As String)
DatoInterno = Dato
End Sub
End Class
Síguenos en: Facebook Sobre aulaClic Política de Cookies