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.

Hasonló előadás


Az előadások a következő témára: "C# tagfüggvények."— Előadás másolata:

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.


Letölteni ppt "C# tagfüggvények."

Hasonló előadás


Google Hirdetések