Arreglos de objetos en C# (clases y POO)

Arreglo de objetos en C#

Hoy veremos cómo definir arreglos de una clase (es decir, arreglos de un objeto o de instancias de una clase) en C#.

Te mostraré cómo declarar un arreglo de objetos y cómo enviarlo a una función, así como la manera de recorrerlo. Todo esto con C sharp.

Declarar arreglo de objetos en C#

Anteriormente te enseñé a declarar arreglos en C#. La sintaxis no cambia para nada. Primero debemos definir la clase:

class Persona
{
    public string nombre;
    public int edad;
    public Persona(string nombre, int edad)
    {
        this.nombre = nombre;
        this.edad = edad;
    }

    public override string ToString()
    {
        return "Persona con nombre " + this.nombre + " y edad " + this.edad;
    }
    public void saludar()
    {
        Console.WriteLine("Me llamo " + this.nombre);
    }
}

Es una simple clase con dos propiedades, el método ToString sobrescrito y un método llamado saludar. Obviamente esta clase puede ser cualquiera o puede ser una clase definida por ti.

Ahora declaramos el arreglo que va a tener instancias de nuestra clase. En este caso la clase de C# se llama Persona así que la declaración del array queda así:

Persona[] personas = { new Persona("Luis", 24), new Persona("María", 24) };

Ya que en este caso el tipo de dato es Persona.

Métodos con arreglos de objetos

Arreglos de objetos en C# (clases y POO)
Arreglos de objetos en C# (clases y POO)

Ya vimos la clase y vimos cómo declarar un arreglo de tipo clase o de tipo objeto. Veamos cómo se recorren y cómo se reciben como argumento en una función o método. Queda así:

static void recorrerArreglo(Persona[] personas)
{
    foreach (var persona in personas)
    {
        Console.WriteLine("Tenemos una persona: " + persona);
        persona.saludar();
    }
}

Fíjate que estamos recibiendo un arreglo que vamos a llamar personas, mismo que es de tipo Persona. Luego lo recorremos con un for-each usando la palabra reservada var de C#, aunque en lugar de var podría ir Persona.

Finalmente en la línea 5 y 6 imprimimos los datos del objeto actual e invocamos a un método de la clase. Obviamente tú podrías acceder a través del índice o hacer cualquier otra cosa; esto es solo un ejemplo.

Poniendo todo junto

Si te interesa el código completo, queda así:

/*
	https://parzibyte.me/blog
*/
using System;

namespace App
{

    class Persona
    {
        public string nombre;
        public int edad;
        public Persona(string nombre, int edad)
        {
            this.nombre = nombre;
            this.edad = edad;
        }

        public override string ToString()
        {
            return "Persona con nombre " + this.nombre + " y edad " + this.edad;
        }
        public void saludar()
        {
            Console.WriteLine("Me llamo " + this.nombre);
        }
    }
    class Programa
    {

        static void recorrerArreglo(Persona[] personas)
        {
            foreach (var persona in personas)
            {
                Console.WriteLine("Tenemos una persona: " + persona);
                persona.saludar();
            }
        }
        static void Main(string[] args)
        {
            Persona[] personas = { new Persona("Luis", 24), new Persona("María", 24) };
            recorrerArreglo(personas);
        }
    }
}

Recuerda: si te gusta C# puedes aprender más en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

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