1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Osztály leszármaztatás
Krizsán Zoltán iit 1.1.  Aszinkron történésről értesítés egy vagy több objektum számára.  Delegátumok segítségével valósítja meg a C#.  event típus,
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Tömbök C#-ban.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Öröklődés 2..
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Fájlkezelés, IO Kivételkezelés Belső osztályok
Abstract osztályok és interface-ek Beolvasás és kiíratás 7. gyakorlat.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Borland C/C++ mintapéldák fájlokra. 1. példa Írjon olyan programot,amely megnyit egy hw.txt fájlt és írja bele a Hello világ szöveget. Ez után zárja le.
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
A Java programozási nyelvSoós Sándor 1/16 Java programozási nyelv 6. rész – Java a gyakorlatban Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
A C++ programozási nyelvSoós Sándor 1/10 C++ programozási nyelv Gyakorlat - 5. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
C# tagfüggvények.
C# osztályok Krizsán Zoltán 1.0.
C# tagfüggvények.
Krizsán Zoltán iit 1.2.  Nem kell vizuális felületnek lennie.  Delegátumok segítségével valósíthatja meg a.NET. Krizsán Zoltán iit Delegátumok C#-ban2.
V 1.0 Szabó Zsolt, Óbudai Egyetem, Haladó Programozás Eseménykezelés ismétlés Névtelen metódusok (anonymous methods)
Kivételkezelés.
V 1.0 OE-NIK HP 1 Programozási Paradigmák és Technikák Eseménykezelés Névtelen metódusok (anonymous methods)
Összetett adattípusok
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozási Paradigmák és Technikák Programozási eszközök Interfészek Generikus.
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozási Paradigmák és Technikák Programozási eszközök Interfészek Generikus.
Számítógépes Grafika 4. gyakorlat Programtervező informatikus (esti)‏ 2011/2012 őszi félév.
Java programozási nyelv Filekezelés
Java programozási nyelv Metódusok
Java programozási nyelv Adatbekérés konzolról
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Haladó Programozás Delegáltak, események OE-NIK HP 1.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Krizsán Zoltán, iit C# osztályok 2 Adattagok  Osztály hatáskörben definiált változó.  Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][,
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Programozási Nyelvek II.
B M Java Programozás 9. Gy: Java alapok IT A N Adatkezelő 5.rész
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Előadás másolata:

1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz

2 Callback fv: egy megadott típusú (szignatúrájú fv)-t mint paramétert adunk át. Ezen fv vissza lehet hívni. A fv szignatúrát rögzíteni kell, mint típust: delegate void PercentCallback( int ); KulcsszóVisszatérési típusA típus neveA fv paraméterezése

3 delegate void PercentCallback( int ); class ZIP_Osztaly { public static void Becsom(string inpFile, PercentCallBack fv ) { … file megnyitasa … int szazalek_kesz = 0; while (!nincs_file_vege()) { … egy szakasz becsomagolasa … szazalek_kesz ++; fv( szazalek_kesz ); } … file lezárása … } delegate void PercentCallback( int ); class ZIP_Osztaly { public static void Becsom(string inpFile, PercentCallBack fv ) { … file megnyitasa … int szazalek_kesz = 0; while (!nincs_file_vege()) { … egy szakasz becsomagolasa … szazalek_kesz ++; fv( szazalek_kesz ); } … file lezárása … }

4 class sajatOsztaly { public static void Kiir(int szazalek) { Console.WriteLine(‘#’); } class sajatOsztaly { public static void Kiir(int szazalek) { Console.WriteLine(‘#’); } delegate void PercentCallback( int ); Megfelel a ‘PercentCallBack’ szignatúrájának Becsom(”C:/proba.txt”, new PercentCallBack( sajatOsztaly.Kiir )); Átadjuk neki a PercentCallBack szignatúrának megfelelő fv-t. Ezt a fv-t fogja becsomagolás közben visszahívni…

5 class sajatOsztaly { public void Kiir(int szazalek) { Console.WriteLine(‘#’); } class sajatOsztaly { public void Kiir(int szazalek) { Console.WriteLine(‘#’); } delegate void PercentCallback( int ); Megfelel a ‘PercentCallBack’ szignatúrájának, de példányszintű! sajatOsztaly s = new sajatOsztaly(); Becsom(”C:/proba.txt”, new PercentCallBack( s.Kiir )); sajatOsztaly s = new sajatOsztaly(); Becsom(”C:/proba.txt”, new PercentCallBack( s.Kiir )); Átadjuk neki a PercentCallBack szignatúrának megfelelő fv-t. Ezt a fv-t fogja becsomagolás közben visszahívni…

6 delegate void PercentCallback( int ); class ZIP_Osztaly { public static PercentCallback callBackFV = null; public static void Becsom(string inpFile) { … file megnyitasa … int szazalek_kesz = 0; while (!nincs_file_vege()) { … egy szakasz becsomagolasa … szazalek_kesz ++; if (callBackFV != null) callBackFV ( szazalek_kesz ); } … file lezárása … } delegate void PercentCallback( int ); class ZIP_Osztaly { public static PercentCallback callBackFV = null; public static void Becsom(string inpFile) { … file megnyitasa … int szazalek_kesz = 0; while (!nincs_file_vege()) { … egy szakasz becsomagolasa … szazalek_kesz ++; if (callBackFV != null) callBackFV ( szazalek_kesz ); } … file lezárása … } Callback fv típusú mező…

7 public static ArrayList callBackFV_List = new ArrayList(); public static void Becsom(string inpFile) { … foreach( PercentCallback fv in callBackFV_LIST) fv( szazalek_kesz ); } public static ArrayList callBackFV_List = new ArrayList(); public static void Becsom(string inpFile) { … foreach( PercentCallback fv in callBackFV_LIST) fv( szazalek_kesz ); } Nem egy, de több visszahívandó fv kezelése… ZIP_Osztaly.callBackFV_List.Add( new PercentCallBack( sajatOsztaly.Kiir ) ); Becsom(”C:/proba.txt”); ZIP_Osztaly.callBackFV_List.Add( new PercentCallBack( sajatOsztaly.Kiir ) ); Becsom(”C:/proba.txt”); Nem garantált, hogy az ArrayList-be csak ilyen fv-ek kerülnek bele!!!

8 private static ArrayList callBackFV_List = new ArrayList(); public static void AddFv( PercentCallBack fv ) { callBackFV_List.Add( fv ); } public static void RemoveFv( PercentCallBack fv ) { callBackFV_List.Remove( fv ); } private static ArrayList callBackFV_List = new ArrayList(); public static void AddFv( PercentCallBack fv ) { callBackFV_List.Add( fv ); } public static void RemoveFv( PercentCallBack fv ) { callBackFV_List.Remove( fv ); } Típushelyesség kikényszerítése…. ZIP_Osztaly.AddFv( new PercentCallBack( sajatOsztaly.Kiir ) ); Becsom(”C:/proba.txt”); ZIP_Osztaly.RemoveFv( new PercentCallBack( sajatOsztaly.Kiir ) ); ZIP_Osztaly.AddFv( new PercentCallBack( sajatOsztaly.Kiir ) ); Becsom(”C:/proba.txt”); ZIP_Osztaly.RemoveFv( new PercentCallBack( sajatOsztaly.Kiir ) );

9 public static event PercentCallback callBackFV_LIST; public static void Becsom(string inpFile) { … if (callBackFV_LIST != null) callBackFV_LIST( szazalek_kesz ); } public static event PercentCallback callBackFV_LIST; public static void Becsom(string inpFile) { … if (callBackFV_LIST != null) callBackFV_LIST( szazalek_kesz ); } Az ‘event’ szóval deklaráljuk, hogy a callBackFV_LIST egyszerre több fv-t is képes tárolni. Ezen fv-ek mindegyikét a fenti egyszerű szintaxissal meg tudjuk hívni. delegate void PercentCallback( int );

10 ZIP_Osztaly.callBackFV_List + = new PercentCallBack( sajatOsztaly.Kiir ) ); Becsom(”C:/proba.txt”); ZIP_Osztaly.callBackFV_List - = new PercentCallBack( sajatOsztaly.Kiir ) ); ZIP_Osztaly.callBackFV_List + = new PercentCallBack( sajatOsztaly.Kiir ) ); Becsom(”C:/proba.txt”); ZIP_Osztaly.callBackFV_List - = new PercentCallBack( sajatOsztaly.Kiir ) ); += -el lehet feliratkozni az visszahívási listára -= -el lehet leiratkozni