Logo de Torre de Babel
Portada Libros Diseño web Artículos Glosario RSS
Buscar

Propiedades auto-implementadas en Visual Basic 2010

Los componentes software cuentan genéricamente con tres categorías de miembros: propiedades, métodos y eventos, siguiendo un modelo patentado por Ivar Wold. En Visual Basic la implementación de propiedades se efectúa mediante la escritura de los habituales getters y setters, como se hace por ejemplo en Java, pero con una sintaxis simplificada como se aprecia en el siguiente ejemplo:


Property Telefono As String
  Get 
     Return miTelefono
  End Get

  Set(ByVal nuevoTelefono As String)
     miTelefono = nuevoTelefono
  End Set
End Property

Obviamente el código introducido en los métodos de lectura y asignación de la propiedad pueden ser más complejos, llevando a cabo operaciones que tengan un efecto en el estado del objeto en lugar de limitarse a guardar/devolver el contenido de una variable. Sin embargo, en una gran mayoría de las ocasiones lo único que se hace es eso: devolver el valor actual de la propiedad y modificarlo, no necesitándose más.

Cabría preguntarse, en estos casos, por qué no se prescinde de la estructura anterior y se implementa la propiedad como una simple variable pública:


Public Telefono As String

El problema es que los mecanismos de instrospección no tratan las variables públicas como propiedades, por lo que no sería posible, por ejemplo, vincular la variable directamente a un origen de datos, algo que sí puede hacerse con una propiedad. Ésta es la razón de que en Visual Basic 2010 se agreguen al lenguaje las propiedades auto-implementadas. Se trata, sencillamente, de agregar la palabra Property delante de lo que sería una declaración de variable habitual:


Property Telefono As String

Esta línea de código generaría el efecto equivalente a las 8 líneas del ejemplo inicial, con la única diferencia de que la variable privada en la que se mantendría el valor no se llamaría miTelefono sino _Telefono. A pesar de no haberse declarado explícitamente, el resto del código del componente puede acceder a dicha variable como a cualquier otra.

En caso de que la variable deba tomar un valor inicial, éste puede asignarse directamente en la propia declaración de la propiedad, con la sintaxis siguiente:


Property Telefono As String = "999-99-99-99"

Esta novedad de Visual Basic 2010, al igual que la continuación implícita de línea a la que se dedicó una entrada en marzo, no aportan nada revolucionario al lenguaje, pero hacen que sea más cómoda la escritura de código, algo que siempre es de agradecer.


Publicado el 20/5/2010

Curso de shaders

Torre de Babel - Francisco Charte Ojeda - Desde 1997 en la Web