Unidad 14. Clases en VB (III)





2    Asignar controladamente los datos.

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

Octubre-2010
Pág. 14.3

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies