Properties en Visual Basic .NET

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.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *