WebElektronika

Metódusok a C# nyelvben I.

person access_time 2014.01.14.
Ebben a cikkben bemutatjuk a metódusok alapjait. Nem érintjük viszont például a túlterhelést, ezt egy következő részben tekintjük át.


A metódus olyan programrészlet, amely osztályhoz (static metódus) vagy objektumhoz kötődik.

A metódusnak a nevén kivűl van visszatérési értéke, illetve láthatóságot beállító szava. Ez lehet "public", "private" vagy "protected", de ezekről később részletesebben fogunk írni. Fontosnak tartjuk viszont már most megjegyezni, hogy ha a láthatóságot nem állítjuk be, akkor "private" lesz, tehát "kívülről" nem lesz látható, tehát az adott osztályon kívül nem lesz elérhető.
 

A metódus felépítése :

láthatóság visszatérési_típus név(paraméterlista)
{
    ....
}

 

Ha szeretnénk meghívni egy metódust, akkor abban az osztályban, ahol ez a metódus elhelyezkedik, elég csak beírni a nevét. Ha másik osztályban található (és ha "public" a láthatóság), akkor osztálynév.metódusnév vagy példánynév.metódusnév.
Ha a saját osztályában hívjuk meg a metódust, akkor (mivel nem példányosítottunk) használni kell a "static" kulcsszót is.

A visszatérési típus sokféle lehet. Ha "void", akkor a metódusunk nem ad vissza semmit a meghívása után. Ha megadtunk visszatérési típust (pl.: int, string, stb.), akkor a metódusunknak tartalmaznia kell egy "return"-t. A return hatására véget ér a metódusnak a futása, tehát, a return után álló programsorok nem kerülnek végrehajtásra.

 

Paraméterek

Vannak olyan metódusok, amelyeknek a működéséhez meg kell adnunk különböző adatokat, paramétereket. Ezeket a metódus paraméterlistájában tudjuk megtenni. A metódus megadásakor a paraméterlistában meg kell adni a paraméter típusát és nevét. Tetszőleges számú paraméter lehet a paraméterlistában. A metóduson belül a paramétereket a nevével érjük el, illetve ezek lokális változók.

Csoportosítsuk most a metódusokat a visszatérési típusuk és a paraméterlistájuk alapján.
 

nincs visszatérési érték és paraméter sincs nincs visszatérési érték, van paraméter

void Metodusnev()
{
      ....
}

 

void Metodusnev(paraméterek)
{
      ....
}

van visszatérési érték, de nincs paraméter van visszatérési érték és van paraméter is

visszatérési típus Metodusnev()
{
      ....
}

visszatérési típus Metodusnev(paraméterek)
{
      ....
}

 

1. Nincs visszatérési típus és a paraméterlista üres

A visszatérési típus "void", azaz, a metódus a meghívása után nem ad vissza semmit. A "void"-ot kötelező kiírni.
Az első ábrán látjuk a "Megmutat()" metódust, void típusú és üres paraméterlistával rendelkezik. Meghívásakor kiírjuk a képernyőre a portál nevét. Fontos, hogy ha üres is a paraméterlista, akkor is ki kell tenni a név mellé a két zárójelet.


1. ábra   "Megmutat()" metódus meghívása (hiányzik a static)
 

Látjuk, hogy az IntelliSense nem kínálja fel a "Megmutat()" metódust, mert a "static" kulcsszó hiányzik. Hogy a példányosítást (későbbi cikkben térünk ki erre) elkerüljük, egészítsük ki a static szóval a metódus szignatúráját (2. ábra)!


2. ábra   "Megmutat()" metódus sikeres meghívása
 

Látjuk, hogy ha a "static"-ot használjuk, akkor az IntelliSense felkínálja nekünk ezt a metódust a Program osztályból.

 

2. Nincs visszatérési típus, a paraméterlista nem üres

A visszatérési típus itt is "void", de a metódus meghívásakor átadunk legalább egy paramétert.


3. ábra   Paraméternélküli (Megmutat()) és paraméteres metódus (Megmutat2(string Adat))
 

A Program osztály Megmutat2 metódusának a meghívása úgy történik, hogy átadunk a meghíváskor egy string típusú paramétert ("Elektronikus újság"). Az eredmény látható a következő ábrán.


4. ábra   Futási eredmény
 

3. Van visszatérési típus, a paraméterlista üres

A "void" helyett meg kell adni egy olyan típust, amelyet a metódus a meghívása után visszaad. Ilyen lehet például a "double", a "string" vagy akár az "int".

static int Osszead()
{
        return 5 + 6;
}

Az Osszead() metódus meghívása után megkapjuk az 5 és a 6 összegét, amely egész (int) típus.

 

4. Van visszatérési típus, a paraméterlista nem üres 

Írjuk át az "Osszead()" metódust úgy, hogy a neve Osszead2 legyen és a paraméterlistájában két egész szám szerepeljen. Amikor meghívjuk ezt az új metódust, akkor csak úgy tudjuk megtenni ezt, ha a paraméterlistájában két, bármilyen egész típusú számot is megadunk. A negyedik ábrán látjuk a metódusok négy csoportját is.


4. ábra   Négy metódus, az Osszead2-nek van paraméterlistája és visszatérési típusa
 

Az ötödik ábrán látjuk a futási eredményt.


5. ábra   Futási eredmény