Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

C# tagfüggvények. Krizsán Zoltán, iit C# osztályok 2 Tagfüggvény Osztályban definiált függvény C#-ban nem definiálhatunk globális függvényt! Formája:

Hasonló előadás


Az előadások a következő témára: "C# tagfüggvények. Krizsán Zoltán, iit C# osztályok 2 Tagfüggvény Osztályban definiált függvény C#-ban nem definiálhatunk globális függvényt! Formája:"— Előadás másolata:

1 C# tagfüggvények

2 Krizsán Zoltán, iit C# osztályok 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

3 Krizsán Zoltán, iit C# osztályok 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‘); }

4 Krizsán Zoltán, iit C# osztályok 4 Tagfüggvény paraméter átadás módjai void ertekSzerint(int a) beállított értéket kap 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

5 Krizsán Zoltán, iit C# osztályok 5 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.

6 Krizsán Zoltán, iit C# osztályok 6 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ő.

7 Krizsán Zoltán, iit C# osztályok 7 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.

8 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) { }

9 Konstruktor fajtái Példány –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. –Feladata a csak olvasható vagy statikus mezők beállítása. –Nem lehet paramétere.

10 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.

11 Krizsán Zoltán, iit C# osztályok 11 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.

12 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.


Letölteni ppt "C# tagfüggvények. Krizsán Zoltán, iit C# osztályok 2 Tagfüggvény Osztályban definiált függvény C#-ban nem definiálhatunk globális függvényt! Formája:"

Hasonló előadás


Google Hirdetések