Array como atributo de una clase en Visual Basic .NET

Hola a todos, hoy os enseñare como podemos usar un array como atributo de una clase en Visual Basic .NET.

En ocasiones, tendremos un conjunto de algun elemento en una clase y nos obliga a crear un array como atributo.

Pondremos como ejemplo un objeto Aula que contiene un conjunto de alumnos, que son objetos de la clase Alumno, estos se forman por tener un nombre y una nota.

Aqui os dejo Alumno


Public Class Alumno

    Private nombre As String
    Private nota As Double

    Sub New(nombre As String, nota As Double)
        Me.nombre = nombre
        Me.nota = nota
    End Sub

    Public Overrides Function ToString() As String
        Return "Nombre: " & nombre & ", Nota: " & nota
    End Function

End Class

Ahora vamos a ver el objeto Aula.


Public Class Aula

    Private alumnos() As Alumno

    Sub New(numero_alumnos As Integer)
        alumnos = New Alumno(numero_alumnos) {}

    End Sub

    Public Sub añadirAlumno(alumno As Alumno)

        For i = 0 To alumnos.Length - 1
            If IsNothing(alumnos(i)) Then
                alumnos(i) = alumno
                Exit For
            End If
        Next

    End Sub

    Public Sub mostrar()

        For i = 0 To alumnos.Length - 1
            If Not IsNothing(alumnos(i)) Then
                Console.WriteLine(alumnos(i).ToString)
            Else
                Console.WriteLine("Posicion vacia")
            End If
        Next

    End Sub

End Class

Fijaos en la definión del array:


Private alumnos() As Alumno

No le damos ninguna longitud inicial en el atributo.

Y en el constructor, vemos lo siguiente:


Sub New(numero_alumnos As Integer)
    alumnos = New Alumno(numero_alumnos) {}
End Sub

La forma de crearlo es como vemos, le pasamos al longitud del array y lo creamos como vemos, según el tipo del objeto, lo cambiaremos.

Os dejo un codigo para comprobar que funciona:


Module Module1

    Sub Main()

        Dim alumno1 As New Alumno("a1", 5.6)
        Dim alumno2 As New Alumno("a2", 4.4)
        Dim alumno3 As New Alumno("a3", 3.7)
        Dim alumno4 As New Alumno("a4", 7.6)

        Dim aula As New Aula(5)

        aula.añadirAlumno(alumno1)
        aula.añadirAlumno(alumno2)
        aula.añadirAlumno(alumno3)
        aula.añadirAlumno(alumno4)

        aula.mostrar()

        Console.ReadLine()

    End Sub

End Module

Aquí os muestro la salida:

Espero que os sea de ayuda. Si tenéis dudas, preguntas. Estamos para ayudarte.

¿Te ha gustado y quieres apoyarme? ¡Sé mi patrón!
Etiquetas

Deja un comentario

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