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‘); } // a piros szöveg helyett bármilyen típus állhat

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

5  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. Paraméter átadás II

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

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

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

9  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) { } Konstruktor II

10  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.  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. Konstruktor fajtái

11  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. Konstruktor IV privát konstruktor

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

13  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. Destruktor II


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