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:
Public Property nombreProp() As <tipo_atributo> Get Return <atributo> End Get Set(value As <tipo_atributo>) <atributo> = value End Set End Property
Veamos un ejemplo con una clase Persona:
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
Ahora vamos a usar las properties para mostrar el valor de un atributo y dar un valor a otro:
Module Module1 Sub 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
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:
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
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