1 / 13

C# tagfüggvények

C# tagfüggvények. 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

havyn
Télécharger la présentation

C# tagfüggvények

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  4. Tagfüggvényparamé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 C# osztályok 4 Krizsán Zoltán, iit

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

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

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

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

  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.

More Related