Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
C# tagfüggvények
2
Tagfüggvény Osztályban definiált függvény
C#-ban nem definiálhatunk globális függvényt! Formája: [attribútum] [módosítók] visszatérési_érték fvnév([paraméterszignatúra]){ } Egy módosító csak egyszer szerepelhet. Kölcsönösen kizárják egymást: static, virtual, override Kölcsönösen kizárják egymást: new, override Krizsán Zoltán, iit C# osztályok 2
3
Tagfüggvény változó hosszúságú paraméterlista
class OpenEnded{ public void Foo( params object[] pp ){ for (int i = 0 ; i < pp.GetLength(0) ; i++){ Console.WriteLine(pp[i]); } } class TestVarArgs{ static void Main(string[] args){ OpenEnded oe = new OpenEnded(); oe.Foo( 123, 456, "Hello", new Point(7,8), 9.0m, true, 'X‘); // a piros szöveg helyett bármilyen típus állhat Krizsán Zoltán, iit C# osztályok 3
4
Tagfüggvény paraméter átadás módjai
void ertekSzerint(int a) Érték szerinti paraméter átadás (másolat) void referenciaSzerint(ref int a) hívásnál is kell a ref kulcsszó, kötelező inicializálni void kimenetiRefSzerint(out int a) hívásnál is kell az out kulcsszó, kötelező a fv. törzsben beállítani Krizsán Zoltán, iit C# osztályok 4
5
Paraméter átadás II Ha referencia típust adunk át paraméterként
Érték szerint, akkor a tartalmát Referencia szerint, akkor az objektumot is tudjuk változtatni.
6
Tagfüggvény Main fv. alakjai
public static void Main() {...} public static void Main(string[] args) {...} public static int Main() {...} public static int Main(string[] args) {...} Paramétere a parancssori argumentumokat tartalmazza. Krizsán Zoltán, iit C# osztályok 6
7
Tagfüggvény Virtuális fv.
Alapból nem virtuális (nem úgy, mint JAVA) virtual kulcsszó segítségével lesz csak az. Ha egy fv. virtuális, akkor kötelező definiálni a törzsét (nincs pure virtual) Felülírása az override minősítővel a leszármazott osztályok valamelyikében Teljes azonosság kötelező. Krizsán Zoltán, iit C# osztályok 7
8
Konstruktor Neve: osztálynév
Nem lehet meghívni explicite, de meghívódik miután a rendszer létrehozta az objektumot. Default konstruktor létrejön, ha nem definiálunk (paraméter nélküli). Ha nincs konstruktor itt is létrejön egy, és ez 0, false, null-ra állítja az adattagokat. Krizsán Zoltán, iit C# osztályok 8
9
Konstruktor II Feladata az objektum inicializálása „konstruálás”.
Több is lehet, de paraméterei mások Hívható másik konstruktor, akár az ősosztályé is, de a formája a következő: public Employee(int weeklySalary, int numberOfWeeks) : this(weeklySalary) { } public Employee(int weeklySalary, int numberOfWeeks) : base(weeklySalary) { }
10
Konstruktor fajtái Példány Privát Statikus
Egy objektum inicializálására használjuk Privát Objektum létrehozását tiltjuk meg vele. Statikus Az osztály első betöltődésekor fut le vagy amikor a statikus mezőre először hivatkozunk. vagy az első példány létrehozásakor Feladata a csak olvasható vagy statikus mezők beállítása. Nem lehet paramétere, sem hozzáférési módosítója. Midig hamarabb fut le, mint a példány konst.
11
Konstruktor IV privát konstruktor
Olyan osztályoknak kell, amelyeket nem szabad példányosítani. Azaz, ha csak statikus részük van. Vigyázzunk, ha nem adunk meg hozzáférést, akkor az privát lesz. A Math osztálynak is privát van.
12
Destruktor Neve: ~osztálynév
Csak 1 darab lehet. Ami finalize-re konvertálódik. Nem öröklődik, Nem lehet felüldefiniálni. Nem lehet meghívni explicite, de meghívódik amikor a gc felszabadítja, kisöpri az objektumot. Krizsán Zoltán, iit C# osztályok 12
13
Destruktor II Nem lehet sem paramétere Nem lehet módosítója.
Feladata az utóhatások megszüntetése. (értesítés, nyugtázás, …). Stuktúrának nem lehet.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.