Como continuación al post anterior, sobre Propiedades en C#, en éste voy a explicar cómo se declaran estos elementos en VisualBasic.NET.
La sintaxis de VB es muy diferente a la de C#, pues es más cercana al lenguaje natural. La declaración de las propiedades es más parecida a un método que a una variable.
Private variable As String Public Property propiedad() As String Get Return variable End Get Set(ByVal value As String) variable = value End Set End Property
La propiedad lleva los paréntesis en la declaración, aunque en su implementación no son necesarios, ya que no tiene parámetros (ni debe).
Dentro de Set también hay diferencia, pues ahí se especifica el parámetro value
, cosa que en C# no es necesaria.
Otra diferencia es al crear propiedades de sólo lectura y sólo escritura. Se debe declarar explícitamente una propiedad de estos tipos.
Private _precio As Decimal Public WriteOnly Property Precio() As Decimal Set(ByVal value As Decimal) _precio = value End Set End Property Public ReadOnly Property propiedad() As String Get Return _precio * 0.16 End Get End Property
La diferencia con C# es que si declaramos una propiedad ReadOnly en VB.NET y definimos la sección Set, se marcará como un error en la compilación. Lo mismo si definimos Get en una propiedad WriteOnly.
Además, al declarar una propiedad en VB, automáticamente genera las secciones Get y Set. Si la hacemos sólo lectura/escritura, se crea la sección correspondiente.
La versión de VB.NET 9 para .NET 3.5 no tiene diferencias con las versiones anteriores, como en el caso de C#, explicado en el post anterior.