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
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
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:
|
1 |
Private alumnos() As Alumno |
No le damos ninguna longitud inicial en el atributo.
Y en el constructor, vemos lo siguiente:
|
1 2 3 |
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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.
Deja una respuesta