namespace _2023._11._13;
class Program
{
    static void KiirasEgyen(Szemely person)
    {
        System.Console.WriteLine("Szeméy adatai:");
        person.Kiiras();
    }

    
    static void Main(string[] args)
    {
        //Objektum létrehozása

        Adatok elemek = new Adatok();


        //Indexelés és érték beállítása

        // elemek[0] = "Első elem";
        // elemek[1] = "Második elem";
        // elemek[2] = "Harmadik elem";


        //Indexelés és érték kiolvasása

        // System.Console.WriteLine(elemek[0]); //Kiírja: Első elem
        // System.Console.WriteLine(elemek[1]); //Kiírja: Második elem
        // System.Console.WriteLine(elemek[2]); //Kiírja: Harmadik elem
        // System.Console.WriteLine(elemek[5]); //Kiírja: Érvénytelen elem


        //Példányosítunk egy Person objektumot

        Szemely egyen1 = new Szemely
        {
            Name = "Horváth Kálmán",
            Age = 30
        };

        //Hívjuk a függvényt és adjuk át a Person objektumot paraméterként

        KiirasEgyen(egyen1);
    }
}


/*
Ebben a példában az Adatok osztály egy egyszerű adatszerkezetet modellez és tartalmaz egy indexdelő (indexer) függvényt 
(this kulcsszóval), amely lehetővé teszi az osztály példányait, mintegy "tömbként" kezeli. Az indexelő függvényt lehetővé teszi az 
értékek beállítását (set) és lekérdezését (get) az Adatok objektumon keresztül, mintha egy tömb lenne.
*/

/*
Ebben a példában van egy Szemely osztály, amely egy személyt reprezentál. Az osztálynak van egy Kiiras metódusa, amely kiírja a 
személy adatait a konzolra. Ezen felül van egy KiirasEgyen függvény, amely egy Szemely típusú paramétert vár. A függvény egyszerűen 
hívja a Kiiras metódust a kapott Szemely objektumon, így megjelenítve az adatokat.
*/