5. Érték és referencia típusú változók
Érték és referencia típusú változók:
Érték típusú változók:
- Konkrét értéket tárolnak
- Az a=b értékadáskor a b értéke átmásolódik a-ba
- Egész, való, logikai, karakter, felsorolás, struktúra típusok
Referencia típusú változók:
- Csak egy memória helyre tárolnak hivatkozást, ahol konkrét érték van
- Az a=b értékadáskor a memóriabeli cím másolódik. a és b ugyanarra a memóriacímen levő értékre fog hivatkozni
- Tömb, osztály, interfész, delegált, esemény típusok
A képi illusztrációt nem teszem be a kidolgozott anyagba, az megtalálható a jegyzetben, akinek nem egyértelmű!
Metódusok paramétereinek érték és referencia szerinti átadása:
Metódusok:
- A metódus egy kódblokk, ami utasítások sorozatát tartalmazza
- A program a metódust meghíváskor futtatja és ekkor megszabja a szükséges paramétereket.
- C#-ban minden futtatandó utasítás metódusban helyezkedik el
- A többször használt kódrészletet metódusba írjuk. Hosszú metódus esetén érdemes azt feldarabolni több kisebb metódusra az átláthatóság miatt.
Szintaktika: visszatérési_típus metódusnév(paraméterek){metódustörzs}
Metódusok típusai:
- A típus a visszaadott érték típusa vagy void, ha nem adunk vissza semmit
- Egy metódus maximum egy visszatérési értéket adhat, de ez lehet tömb is!
- A visszatérési érték típus előtt állhatnak különféle módosítók: static, abstract, override, new illetve láthatóságot jelző kulcsszavak.
Metódustörzs:
- A metódusban lévő utasítások használhatják a metódusnak átadott paramétereket
- A visszatérési értéket a return kulcsszó után adjuk meg! FIGYELEM! Ennek hatására a program azonnal visszatér a híváshoz, akkor is ha van még utasítás a return után!
- A metódus több ágon is véget érhet, ilyenkor minden ág végére kell a return!
- A visszatérési érték nélküli (void) metódusnál a program mindig a metódus fizikai végénél tér vissza, a return elhagyható!
Változók hatóköre:
- Az egyik blokkban deklarált változó csak a deklarálástól kezdve a blokk végéig érvényes! Következmény: az egyik metódusban deklarált x változó nem ugyan az mint a másikban deklarált x változó!
- A hívó környezet változói nem használhatók a metódusban, ezért szükséges a paraméterátadás és a visszatérési érték! A globális változók használhatóak, de nem ajánlott a használatuk.
Paraméterek átadása:
Metódusok paraméterei:
- A paramétereknél meg kell adni a típust és a nevet amivel a metódusban hivatkozunk rá
- A paraméter átadásnak két módja van: az érték szerinti és a cím szerinti
- Érték szerinti: a paraméterben átadott változóról másolat készül a metódusban, így ha a metódusban a változó értéket cserél, az nincsen kihatással az eredeti változóra, tehát a hívó környezetben nem érvényesül a módosítás.
- Cím szerinti: egy referenciát adunk át, tehát ha a metódusban értéket cserél a változó, akkor az a hívó környezetben is megváltozik.
- Az érték szerinti átadás az alapértelmezett. (Ha referencia változót adunk át érték szerinti átadással, akkor a referencia változóban tárolt cím másolódik le, tehát az értékcsere érvényes lesz a hívó környezetre is)
- Ha érték típusú paramétert szeretnénk cím szerint átadni, azt a ref vagy az out kulcsszó segítségével tehetjük meg. Az out és a ref kulcsszó között annyi a különbség, hogy a ref-el átadott referenciaváltozót kell inicializálni használat előtt az out-al átadottat nem.
- Mivel kétfajta változótípusunk van, ezért 4 különféle paraméterátadási lehetőségünk van
Metódusnév túlterhelés:
- Jelentés: Több azonos nevű metódus egy osztályon belül
- A metódusok szignatúrája egyedi az osztályon belül (szignatura = metódusnév + paraméterek száma, típus és sorrend)
- Használhatunk több azonos nevű metódust is egy osztályon belül, de a paraméterlistájuknak különbözni kell
Felhasznált Irodalom: Sergyán Szabolcs – Programozás I – 4. előadás diasor
Kommentek
Powered by Facebook Comments