Hola a todos, hoy os explicaré como funcionan y como crear los properties en Visual Basic .NET.
Las propiedades en Visual Basic .NET es el equivalente a los get y set en Java.
Estos nos permiten devolver el valor o establecer el valor de un atributo en concreto. También podemos indicar que solo sea de lectura.
Este es el formato de Property:
[vbnet] Public Property nombreProp() AsGet
Return
End Get
Set(value As
End Set
End Property[/vbnet]
Veamos un ejemplo con una clase Persona:
[vbnet]Public Class Persona Private nombre As String
Private edad As Integer
Public Sub New(nombre As String, edad As Integer)
Me.nombre = nombre
Me.edad = edad
End Sub
Public Property PropNombre() As String
Get
Return nombre
End Get
Set(value As String)
nombre = value
End Set
End Property
Public Property PropEdad() As Integer
Get
Return edad
End Get
Set(value As Integer)
edad = value
End Set
End Property
End Class[/vbnet]
Ahora vamos a usar las properties para mostrar el valor de un atributo y dar un valor a otro:
[vbnet]Module Module1Sub Main()
Dim p As New Persona(«Fernando», 26)
Console.WriteLine(«Original»)
Console.WriteLine(«Nombre: » & p.PropNombre)
Console.WriteLine(«Edad: » & p.PropEdad)
p.PropNombre = «Pepe»
p.PropEdad = 13
Console.WriteLine(«Cambio»)
Console.WriteLine(«Nombre: » & p.PropNombre)
Console.WriteLine(«Edad: » & p.PropEdad)
Console.ReadLine()
End Sub
End Module[/vbnet]
Como veis, vale tanto para mostrar como para modificar.
Una cosa que podemos hacer, es que solo sea de lectura, es decir, que no se pueda modificar. Veamos como:
[vbnet]Public Class Persona Private nombre As String
Private edad As Integer
Public Sub New(nombre As String, edad As Integer)
Me.nombre = nombre
Me.edad = edad
End Sub
Public ReadOnly Property PropNombre() As String
Get
Return nombre
End Get
End Property
Public ReadOnly Property PropEdad() As Integer
Get
Return edad
End Get
End Property
End Class[/vbnet]
Solo tenemos que añadir ReadOnly y quitar la parte de Set. Si intentamos lo de antes, nos dará error y no compilara.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta