Fájlok írása Pytonban!
Elkészült a Python nyelv Szövegfájlok írása tananyagunk! Jó tanulást, jó gyakorlást!

<info9>

Struktúrák

Amennyiben több, különböző típusú, de összetartozó adatot szeretnénk tárolni a C# programunkban, létrehozhatunk nekik egy adatstruktúrát a struct kulcsszó használatával. Bár a struktúrák sokmindenben hasonlítanak az osztályokra, mégis sokmindenben egyszerűbbek azoknál. A legegyszerűbb lehetséges felhasználásuk, ha egyszerűen nyilvános változókat hozunk benne létre az egyes letárolandó adatoknak, például így:

struct konyv
{
    public string cim;
    public string szerzo;
    public int oldalszam;
}

Figyeljük meg a kódrészletben a változók neve előtti public kulcsszót! Ha szeretnénk, hogy a struktúra egyes tulajdonságait elérjük, olvashassuk, módosíthassuk a struktúrán kívüli kódból is, akkor használnunk kell ezt a jelölőt! Most, hogy definiáltuk a struktúránkat, létre is hozhatunk belőle egy példányt, és kitölthetjük az adataival:

konyv szjg;
szjg.cim = "Szent Johanna Gimi 1.";
szjg.szerzo = "Leiner Laura";
szjg.oldalszam = 386;

A struktúrák esetén nem feltétlen szükséges létrehozáskor a new kulcsszó használata. Ha van a struktúrában konstruktor, akkor annak meghívásához természetesen kell a new, de létrehozhatunk példányt konstruktor használata nélkül is, ekkor minden érték üres marad, és azokat sorra megadhatjuk a mintának megfelelően.

Struktúrák a gyakorlatban

A struktúrákból persze nem csak egy-egy példányt tudunk létrehozni, hanem akár tömbökhöz, listákhoz is használhatjuk. Ha például egy könyvtári nyilvántartáshoz szükségünk van 100 db könyvre a fentebbi struktúrával, akkor simán készíthetünk belőlük egy tömböt:

konyv[] könyvtár = new konyv[100];

Vagy akár egy listát is:

List<konyv> könyvespolc = new List<konyv>(); 

Konstruktor

A struktúrákhoz lehetőség van ún. konstruktorok létrehozására. A konstruktor egy olyan eljárás, amit az adott adatszerkezet kezdeti állapotának beállítására használhatunk. Ha például tudjuk, hogy a könyveinket minden esetben úgy fogjuk létrehozni, hogy rögtön a létrehozáskor tudjuk a könyv címét, a szerzőjét és az oldalszámát is, készíthetünk egy konstruktort, ami ezt a három információt beállítja, így le tudjuk rövidíteni a kódunkat a későbbiekben. Hozzunk létre egy konstruktort!

struct konyv
{
    public string cim;
    public string szerzo;
    public int oldalszam;
    
    public konyv(string Cim, string Szerzo, int Oldalszam) 
    {
    	this.cim = Cim;
    	this.szerzo = Szerzo;
    	this.oldalszam = Oldalszam;
    }
}

Innentől kezdve ha szeretnék létrehozni egy új könyvet, megtehetem így is:

konyv szjg = new konyv("Szent Johanna Gimi 1.","Leiner Laura",386);

Amennyiben több különféle paraméterezéssel is jöhet létre könyv a programunkon belül, úgy persze több konstruktor létrehozására is van lehetőség, fontos azonban, hogy a konstruktorok eltérő számú/típusú paramétereket kell hogy fogadjanak. Ha pl. gyakran olvasunk be CSV fájlból is könyveket, készíthetünk erre is egy konstruktort:

struct konyv
{
    public string cim;
    public string szerzo;
    public int oldalszam;
    
    public konyv(string Cim, string Szerzo, int Oldalszam) 
    {
    	this.cim = Cim;
    	this.szerzo = Szerzo;
    	this.oldalszam = Oldalszam;
    }
    
    public konyv(string csvsor)
    {
    	string[] darabok = csvsor.Split(';');
    	this.cim = darabok[0];
    	this.szerzo = darabok[1];
    	this.oldalszam = Convert.ToInt32(darabok[2]);
    }
}

Ezzel most már két lehetőségünk is van könyvek létrehozására:

konyv szjg = new konyv("Szent Johanna Gimi 1.","Leiner Laura",386);
konyv eredet = new konyv("Eredet;Dan Brown;574");

Struktúrák eljárásokkal

Hamarosan...