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